如何在R中的哪个()语句中使用负值?

时间:2014-04-06 23:17:49

标签: r

我想排除x值小于或等于-10的行,所以我写了这个:

newdata <- data[which(data$x> -10), ]

这是正确的还是我需要将-10放在双引号中?

谢谢。

1 个答案:

答案 0 :(得分:2)

(决定将其从评论升级为答案。)

  • 使用双引号明智:它会以一些非常令人惊讶的方式弄乱你。例如,1 > "-10"FALSE(!!),因为R比较字符串的方式。
  • R使用<-进行分配可能让您遇到麻烦;如果您希望x<-10进行比较而不是将值10分配给x,则需要空格x < -10或括号(x<(-10))。但是,>比较不会出现这种情况。
  • 如果您担心(x > (-10)),您可以随时使用括号;唯一的缺点是如果使用太多(例如data[(which(((data$x)>(-10)))),])),事情会变得更难阅读。
  • 正如评论中所指出的,R是一个交互式环境;如果您无法从文档或其他帮助来源中找出类似的内容,那么您应该尝试一个小例子并说服自己确实有效。

例如:

 x <- c(-20,-15,-10,-4,0)
 x[x>-10]
 ## -4 0