R语言中符合条件筛选行

Python09

R语言中符合条件筛选行,第1张

如果两个数据集的变量完全一样的话可以直接这样 :newdata<-merge(longlist,shortlist,all=FALSE)得到的就是两个的交集。如果变量不同的话,可以接着刚才操作,设定变量x用来标注longlist中的id是否也在shorlist中出现过:id<-newdata$idx<-c("true")a<-cbind(id,x)a<-data.frame(a)longlist<-merge(longlist,a,all=TRUE)然后longlist中就会多出x变量,与shortlist相同的id后面x为true

建议你选择subset函数

subset函数,从某一个数据框中选择出符合某条件的数据或是相关的列

(1)单条件查询

>selectresult=subset(df1,name=="aa")

>selectresult

name age sex

1 aa 20 f

>df1

name age sex

1 aa 20 f

2 bb 29 m

3 cc 30 f

(2)指定显示列

>selectresult=subset(df1,name=="aa",select=c(age,sex))

>selectresult

age sex

1 20 f

(3)多条件查询

>selectresult=subset(df1,name=="aa" &sex=="f",select=c(age,sex))

>selectresult

age sex

1 20 f

>df1

name age sex

1 aa 20 f

2 bb 29 m

3 cc 30 f

假设这一列数为a,a是vector。a[a<-log(0.0000043,10)]。

第一个用table(), 会把所有user的频数显示出来,table(testing$user)。

第二个就取交集算个数吧。

如果只看user == 2中,item也相同的个数,那么

testuser <- testing[testing$user == 2, ]

trainuser <- trainuser[training$user == 2, ]

length(intersect(testuser, trainuser))。