【发布时间】:2018-04-03 03:12:37
【问题描述】:
我有这样的数据
Linking <- data.frame(
ID = c(round((runif(20, min = 10000, max = 99999)), digits = 0), NA, NA, NA, NA),
PSU = c(paste("A", round((runif(20, min = 10000, max = 99999)), digits = 0), sep = ''), NA, NA, NA, NA),
qtr = c(rep(1:10, 2), NA, NA, NA, NA)
)
Linking$Key <- paste(Linking$ID, Linking$PSU, Linking$qtr, sep = "_")
Linking$Key[c(21:24)] <- c("87654_A15467_1", "45623_A23456_2", "67891_A12345_4", "65346_A23987_7")
我想要做的是从“Key”的信息中填充 ID、PSU 和 qtr 的 NA 值,但仅适用于具有 NA 值的行。
有人知道怎么做吗?
此代码执行我想要的操作,但它对每个变量的所有值都执行此操作。我只想对值为 NA 的行执行此操作。
Linking2 <- Linking
Linking2$ID <- substr(Linking$Key,1,5)
Linking2$PSU <- substr(Linking$Key,7,12)
Linking2$qtr <- substr(Linking$Key, 14,15)
【问题讨论】:
-
这基本上是this 问题,但仅针对特定行。