R-如何提取数据帧的子集,该数据帧包含两个因素的多个观测值,每个因素基于条件具有多个级别?
在R中有一个数据帧,第一个因子有3个级别[a,B,C] 第二个因子有3个层次[1,2,3]。这将产生数据帧R-如何提取数据帧的子集,该数据帧包含两个因素的多个观测值,每个因素基于条件具有多个级别?,r,subset,R,Subset,在R中有一个数据帧,第一个因子有3个级别[a,B,C] 第二个因子有3个层次[1,2,3]。这将产生数据帧 Alphabet <- c ("A","A","A","B","B","B","C","C") L <- c (1,2,1,1,3,1,3,3) df = data.frame(Alphabet, L) Alphabet以下是dplyr解决方案: library(dplyr) group_by(df, Alphabet) %>% filter(!(L == 3 &
Alphabet <- c ("A","A","A","B","B","B","C","C")
L <- c (1,2,1,1,3,1,3,3)
df = data.frame(Alphabet, L)
Alphabet以下是dplyr解决方案:
library(dplyr)
group_by(df, Alphabet) %>% filter(!(L == 3 & any(L %in% c(1, 2))))
或者我们可以使用data.table
library(data.table)
setDT(df)[df[, .I[!(L==3 & any(L %in% 1:2))], Alphabet]$V1]
如果我理解正确,在上面的示例中,子集将仅由第7行和第8行组成,因为它们是第一个因子的级别仅与第二个因子的一个级别关联的唯一行?来自审阅队列:欢迎使用StackOverflow-请阅读并编辑您的问题。它们将包括除第5行以外的所有行。其思想是保持所有与1,2关联的值。当且仅当字母表中有1或2与级别关联时,删除包含3的行。