我想对数据框进行子集操作,以下是创建数据框的代码:
col1<-c(1:22 )
col2<-c(0,-19,1,-30,15,60,15,16,19
,19,1,13,13,24,60,19,160,72
,10,19,14,-78)
col3<-c ( NA,2.190,NA,NA, -5.000, NA,
1.700,4.220,NA,NA,NA,2.000,
6.340,9.000,-5.000,NA,4.750,
NA,NA,NA,2.560,2.560)
mydata<-data.frame(col1,col2,col3)
我想从这个数据框中子集化那些col2
和col3
的值都大于0
的行,然后我的下一个语法是:
mydata<-mydata[mydata$col2>0 & mydata$col3>0,]
显然数据帧已经发生了改变,那么我的语法有什么问题呢?
这是之前的数据帧:
![my dataframe before](https://istack.dev59.com/j9dFP.webp)
...而这是之后的数据帧:
![my dataframe after](https://istack.dev59.com/zAFsA.webp)
which()
,例如mydata[which(mydata$col2>0 & mydata$col3>0),]
。 - Marat Talipov