我在尝试获取初始数据帧的子集时遇到了一些麻烦,因为它最终破坏了我的数据帧!以下是正在发生的事情的一个例子:
考虑一个数据帧:
>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来破坏我的初始数据库!
答案 0 :(得分:3)
这不是一个错误。你只需要放括号,否则它将是赋值标记<-
。如果你想严格低于-2:
subtest=test[test$v1<(-2),]
答案 1 :(得分:3)
我不是一个错误。这只是一个错字!
运算符<-
用于分配值。在命令subtest=test[test$v1<-2,]
中,您已将变量v1
的所有值分配给2
。
要做你想做的事,你应该这样做:
subtest=test[test$v1< -2,]