【问题标题】:Bug in R with subsetR中的错误与子集
【发布时间】:2014-12-07 23:42:26
【问题描述】:

我在尝试获取初始数据帧的子集时遇到了一些麻烦,因为它最终破坏了我的数据帧!这是正在发生的事情的一个示例:

让我们考虑一个数据框:

>test=data.frame("v1"=c(1,2,3,4,-5,-3),"v2"=c(1,2,3,4,5,6))
> print(test)
  v1 v2
1  1  1
2  2  2
3  3  3
4  4  4
5 -5  5
6 -3  6

然后我想取 var1 值严格低于的子集,比如说 -2:

> subtest=test[test$v1<-2,]
> print(subtest)
  v1 v2
2  2  2
> print(test)
  v1 v2
1  2  1
2  2  2
3  2  3
4  2  4
5  2  5
6  2  6

子集操作不仅不起作用,而且实际上通过将所有 v1 值替换为 2 来破坏我的初始数据库!

【问题讨论】:

标签: r


【解决方案1】:

这不是错误。这只是一个错字!

运算符&lt;- 用于赋值。在命令subtest=test[test$v1&lt;-2,] 中,您已将变量v1 的所有值分配给2

要做你想做的事,你应该这样做:

subtest=test[test$v1< -2,]

【讨论】:

    【解决方案2】:

    这不是错误。你只需要加上括号,否则它将是赋值标记&lt;-。如果你想严格低于 -2:

    subtest=test[test$v1<(-2),]
    

    【讨论】:

    • 空格会更传统:test$v1 &lt; -2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2018-07-28
    • 2017-07-11
    • 2021-06-16
    相关资源
    最近更新 更多