R中的指示功能

时间:2013-11-20 12:52:35

标签: r function

我正在寻找R中的指标函数,即如果向量中元素的值大于0则返回1的函数,如果向量中元素的值较小则返回0比0.

我需要在向量中的所有元素上使用此函数,返回一个只有零和一的新向量。

感谢。

4 个答案:

答案 0 :(得分:6)

有多种方式,最小的击键方式之一:

  Ivec <- 0+(vec>0)

保存几个按键:as.numeric(vec>0)。我想如果应用于大型矢量或在模拟中使用,ifelse(x>0,1,0) - 方法会稍慢。也可以使用:

 Ivec <- 1*(vec>0)

答案 1 :(得分:4)

如果我能够正确理解你,那么你想对整个数据框进行更改,假设我可以建议你使用如下所示的应用,其中df是你的数据框。

apply(df,2,function(x)ifelse((x>0),1,0))

你也可以使用if仅用于下面的一个向量:

x <- c(-2,3,1,0)
y <- ifelse(x>0,1,0)
print(y)
[1] 0 1 1 0 #Output

希望这有帮助

答案 2 :(得分:1)

R中的I函数称为抑制解释/对象转换功能,可用于此目的。例如,下面的行返回函数I(x <4)的值,其中X = {0,1,2,3,4,5}:

> I(0:5 < 4)
[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE

在R TRUEFALSE中可以视为1和0,但如果您坚持输出正是这些数字,只需将I函数包装到{{1}中}。

答案 3 :(得分:0)

R

中还有一个内置指示器功能
  

指示符(X,MIN,MAX)

-Inf和Inf仍然是有效值。