如何只选择正值?

Tik*_*ung 8 r

我有一个包含正值,负值和NA值的数据集.如何使用脚本选择仅正值?我还想用负数替换负数,NA并保留NA值.

nik*_*par 8

你可以使用这个which功能:

sample <- c(1, 2, -7, NA, NaN)
sample[which(sample > 0)]
[1] 1 2
Run Code Online (Sandbox Code Playgroud)

对于负值,指定NA.

使用which:

sample[which(sample < 0)] <- NA 
Run Code Online (Sandbox Code Playgroud)

  • 我很高兴它奏效了.由于您是新用户,因此不建议在Stack Overflow中使用"谢谢".如果此答案解决了您的问题,您可以对其进行投票和/或接受正确(答案旁边的绿色勾号).看看这里的旅游了解更多信息:http://stackoverflow.com/tour当然,祝你有愉快的一天. (2认同)

Ron*_*hah 5

您可以尝试以下命令:

> x<-c(1,2,3,-5)
> x[x>0]
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

将返回所有正值。
要将负数替换为 NA,请使用

> x <- ifelse(x<0, NA,x)
> x
[1]  1  2  3 NA
Run Code Online (Sandbox Code Playgroud)

选择正值的另一种方法是使用sign

x[sign(x) == 1]
Run Code Online (Sandbox Code Playgroud)

我们可以将它们结合起来Filter

Filter(function(i) i > 0, x)

Filter(function(i) sign(i) == 1, x)
Run Code Online (Sandbox Code Playgroud)