如何创建一个表,表明在几个data.frames中存在因子级别

时间:2014-09-25 13:44:39

标签: r dataframe levels

我有几个data.frames,它们有一些共同的因子变量。但是,缺少观察结果会导致差异,某些数据框架会丢失某些级别。我想创建一个汇总表,指出哪些data.frames包含级别,哪些不包含。

喜欢这个

因子1

            DF.1   DF.2
  LEVEL1    TRUE   TRUE
  LEVEL2    TRUE   FALSE

其中FACTOR1的LEVEL1出现在数据帧DF.1和DF.2中,而LEVEL2仅出现在DF.1中但不出现在DF.2中。

1 个答案:

答案 0 :(得分:1)

尝试:

df.1 = data.frame(var=c('a','b','c','d'))
df.2 = data.frame(var=c('a','b','c'))
df.3 = data.frame(var=c('a','d','d'))

ldf = list()
for(i in 1:3){
    ldf[[length(ldf)+1]] =get(paste0('df','.',i))
}
ll = sapply(ldf, function(x) {c(levels(x$var))})
levellist = unique(unlist(ll))

levellist
[1] "a" "b" "c" "d"

sapply(ldf, function(x) {levellist %in% levels(x$var) })
     [,1]  [,2]  [,3]
[1,] TRUE  TRUE  TRUE
[2,] TRUE  TRUE FALSE
[3,] TRUE  TRUE FALSE
[4,] TRUE FALSE  TRUE