繁体   English   中英

R中的subset.data.frame

[英]subset.data.frame in R

我有一个原始数据的数据框:

raw <- data.frame(subj = c(1,1,1,2,2,2,3,3,3,4,4,4),
                   blah = c(0,0,0,1,1,1,1,0,1,0,0,0))

从它,我想删除坏的主题。

badsubj <- c(1,4)  
trim <- subset.data.frame(raw, subj != badsubj)  

但是由于某些原因,并不会删除所有badsubj值:

   subj blah
2     1    0
4     2    1
5     2    1
6     2    1
7     3    1
8     3    0
9     3    1
11    4    0

我究竟做错了什么? 意见2和11应该被排除,因为它们是badsubj的成员。

raw[!raw$subj %in% badsubj, ] 

错误使用!=

问题是subj和badsubj的长度不同。 因此badsubj将被回收直到两个向量的长度相同。 然后,您的代码逐元素比较下面输出中的值。

     subj badsubj
 1     1    1
 2     1    4
 3     1    1
 4     2    4
 5     2    1
 6     2    4
 7     3    1
 8     3    4
 9     3    1
 10    4    4
 11    4    1
 12    4    4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM