【发布时间】:2020-12-04 10:07:20
【问题描述】:
我需要创建一个新列,它是两个或三个其他列的函数,其中一个包含一些缺失数据 (NA)。但是,当我使用dplyr 的mutate 函数时,新列包含所有NA。
请看下面的例子:
rand_df <- data.frame(replicate(10,sample(0:10,200,rep=TRUE))) # random df
names(rand_df) <- letters[seq(from=1, to=10)] #renaming header
rand_df$c[2:20] <- NA # introducing NAs
head(rand_df)
a b c d e f g h i j
1 3 1 8 2 4 3 1 9 2 9
2 6 1 NA 1 2 8 8 6 0 9
3 5 7 NA 2 4 1 7 7 3 0
4 10 8 NA 6 6 7 0 2 2 0
5 4 1 NA 9 3 8 2 2 5 2
6 10 8 NA 3 10 2 10 4 5 5
尝试创建一个新列
rand_df <- rand_df %>% mutate(k = 141 * min((c/88.42), 1))
head(rand_df):
a b c d e f g h i j k
1 3 1 8 2 4 3 1 9 2 9 NA
2 6 1 NA 1 2 8 8 6 0 9 NA
3 5 7 NA 2 4 1 7 7 3 0 NA
4 10 8 NA 6 6 7 0 2 2 0 NA
5 4 1 NA 9 3 8 2 2 5 2 NA
6 10 8 NA 3 10 2 10 4 5 5 NA
我知道我可以简单地使用 for 循环逐行循环并跳过包含 NA 的行,但我想有更好的方法来做到这一点。
【问题讨论】:
标签: r dplyr na missing-data