我希望可以在R中“总结”一个因子变量,以便于每个记录我都知道哪些因子水平是存在的。
以下是一个简化的数据框示例:
这是我想要实现的目标:
这是我能够得到的最接近的结果,但它将每个记录的所有因素级别都放在一起,而不仅仅是应该出现在每个记录中的级别。
我需要找到一种方法,以便确定每个记录中存在哪些物种因素的组合。
以下是一个简化的数据框示例:
df <- data.frame(record= c("a","a","b","c","c","c"),
species = c("COD", "SCE", "COD", "COD","SCE","QSC"))
record species
a COD
a SCE
b COD
c COD
c SCE
c QSC
这是我想要实现的目标:
data.frame(record= c(a,b,c), species = c("COD, SCE", "COD", "COD, SCE, QSC"))
record species
a COD, SCE
b COD
c COD, SCE, QSC
这是我能够得到的最接近的结果,但它将每个记录的所有因素级别都放在一起,而不仅仅是应该出现在每个记录中的级别。
summarise(group_by(df, record),
species = (paste(levels(species), collapse="")))
record species
<fctr> <chr>
a CODQSCSCE <- this should be CODSCE
b CODQSCSCE <- this should just be COD
c CODQSCSCE <- this is correct as CODQSCSCE as it has all levels
tapply
返回相同的结果。
tapply(df$species, df$record, function(x) paste(levels(x), collapse=""))
a b c
"CODQSCSCE" "CODQSCSCE" "CODQSCSCE"
我需要找到一种方法,以便确定每个记录中存在哪些物种因素的组合。