R 按 2 个因子的特定水平组合进行子集化

标签 r subset

基于两个因素的水平的独特组合的子集:

test <- data.frame(colA = rep(1:3,each =4), colB = LETTERS[c(1,2,3,4,5,6,1,2,5,6,7,4)] )
# select for each colA factor specfic letters: 1&A 1&B  2&E  3&D
test[test$colA %in% c(1,1,2,3) & test$colB %in% c("A", "B", "E", "D"),]

这不是我想要的:

colA colB
1     1    A
2     1    B
4     1    D
5     2    E
7     2    A
8     2    B
9     3    E
12    3    D

我想要:

colA colB
1 A
1 B
2 E
3 D

最佳答案

尝试一下:

> test[interaction(test,sep='') %in% c('1A','1B','2E','3D'),]
   colA colB
1     1    A
2     1    B
5     2    E
12    3    D

我想您的实际情况可能更复杂,在这种情况下您可能希望以编程方式构建可接受的组合,例如:

x <- paste(c(1,1,2,3), c('A','B','E','D'), sep='')
test[interaction(test,sep='') %in% x,]

关于R 按 2 个因子的特定水平组合进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065740/

相关文章:

r - Shiny 元素 : Blank Spaces in inputId

r - 制作一张表格,显示R中变量的10个最大值。

regex - 使用正则表达式的 R 子集数据集

r - 基本 R 图中线型(或标记)和颜色的图例

r - 为什么 mapply 不返回日期对象?

r - 用重复点绘制数据

c# - 获取集合的所有子集

r - 从一组集合中找到所有不相交(非重叠)的集合

r - 使用子集时添加图例

r - 是否可以用R读取EXIF数据?