我有以下数据集
structure(list(a = c(2, 1, 9, 2, 9, 8), b = c(4, 5, 1, 9, 12,
NA), c = c(50, 34, 77, 88, 33, 60)), class = "data.frame", row.names = c(NA,
-6L))
a b c
1 2 4 50
2 1 5 34
3 9 1 77
4 2 9 88
5 9 12 33
6 8 NA 60
我只想要第二列中4-9之间的数值,第三列中50-80之间的数值。将范围外的值替换为NA,得到:
structure(list(a = c(2, 1, 9, 2, 9, 8), b = c(4, 5, NA, 9, NA,
NA), c = c(50, NA, 77, NA, NA, 60)), class = "data.frame", row.names = c(NA,
-6L))
a b c
1 2 4 50
2 1 5 NA
3 9 NA 77
4 2 9 NA
5 9 NA NA
6 8 NA 60
我已经尝试了 replace_with_na_at 函数的几种用法,其中这个看起来最合理:
test <- replace_with_na_at(data = test, .vars="c",
condition = ~.x < 2 & ~.x > 2)
然而,我尝试的一切都没有起作用。有人知道为什么吗?提前感谢! :)
replace_with_na_at()
函数来自哪个包?你应该在可重复的示例代码中包含相关的库调用。 - s_baldur