如何在R中正确地对数据框进行子集操作?

3

我想对数据框进行子集操作,以下是创建数据框的代码:

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)

我想从这个数据框中子集化那些col2col3的值都大于0的行,然后我的下一个语法是:

mydata<-mydata[mydata$col2>0 & mydata$col3>0,]

显然数据帧已经发生了改变,那么我的语法有什么问题呢?
这是之前的数据帧: my dataframe before
...而这是之后的数据帧: my dataframe after

2
使用 which(),例如 mydata[which(mydata$col2>0 & mydata$col3>0),] - Marat Talipov
谢谢@MaratTalipov,它完美地工作了! - eclo.qh
1个回答

4
如何使用 subset 函数呢:
subset(mydata, col2>0 & col3>0)

当某些东西不起作用时,我通常会回到基础 :) - Alexander Radev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接