我有一个像这样的data.frame:
set.seed(126)
df <- data.frame(a=sample(c(1:100, NA), 10), b=sample(1:100, 10), c=sample(1:100, 10))
a b c
1 65 48 19
2 46 15 80
3 NA 47 84
4 68 34 46
5 23 75 42
6 92 87 68
7 79 28 48
8 84 55 9
9 28 43 38
10 94 99 77
>
Run Code Online (Sandbox Code Playgroud)
我想写一个函数,将所有列中的所有值转换为NA,如果df$a是,NA但是,我不想只分配b和c值NA,而是我想要一个函数将data.frame中的所有列转换为如果条件is.na(a)满足则为NA ,无论列数如何.
我想你只是在寻找
df[is.na(df$a), ] <- NA
# a b c
# 1 65 48 19
# 2 46 15 80
# 3 NA NA NA
# 4 68 34 46
# 5 23 75 42
# 6 92 87 68
# 7 79 28 48
# 8 84 55 9
# 9 28 43 38
# 10 94 99 77
Run Code Online (Sandbox Code Playgroud)