gpt4 book ai didi

使用 replace_with_na 函数用 NA 替换范围外的值

转载 作者:行者123 更新时间:2023-12-03 23:11:47 26 4
gpt4 key购买 nike

我有以下数据集

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

从 b 列我只想要 4-9 之间的值。 c列在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)

但是,我尝试过的任何方法都不起作用。有人知道为什么吗?提前致谢! :)

最佳答案

您可以使用逻辑向量测试您的条件。

x$b[x$b < 4 | x$b > 9] <- NA
x$c[x$c < 50 | x$c > 80] <- NA
x
# 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

数据:
x <- 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))

关于使用 replace_with_na 函数用 NA 替换范围外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62149789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com