R - 使用sqldf进行子集化的替代方法

时间:2017-06-23 11:36:53

标签: r sqldf

  

ID< - c(1:7)

     

Q1< - c(12,12,15,14,11,101,1009)

     

df4< - data.frame(ID,Q1)

     

查看(DF4)

ID | Q
1 | 12
2 | 12
3 | 15
4 | 14
5 | 11
6 | 101
7 | 1009

使用sqldf我可以获得一个记录的Q值为12,101或1009

的子集
  

dt4< - as.data.table(df4)#将df4转换为表格

     

df5< - sqldf(" select * from dt4 where Q1 in(12,101,1009)")

     

查看(DF5)

ID | Q
1 | 12
2 | 12
6 | 101
7 | 1009

如何在不使用sqldf的情况下实现相同目标?

1 个答案:

答案 0 :(得分:1)

df4[which(df4$Q1 %in% c(12, 101, 1009)),]

dplyr

library(dplyr)

df4 %>% filter(Q1 %in% c(12, 101, 1009))