我正在尝试将摘要行添加到详细说明每列级别的数据框中。我遇到了在框架中应用水平功能的问题。我认为原因是单独处理的列被视为因子向量,但是当使用apply函数时,它们被视为字符:
a = c("a","b","c")
b = c("d","e","f")
m = cbind(a,b)
df = as.data.frame(m)
class(df[,1])
[1] "factor"
apply(df, MARGIN=2, class)
a b
"character" "character"
我认为这是问题的原因:
levels(df[,1])
[1] "a" "b" "c"
apply(df, MARGIN=2, levels)
NULL
我查看了有关应用,数据框和网络的帮助文档。有人可以解释为什么会这样吗?
答案 0 :(得分:0)
你可以使用lapply或sapply函数来了解你的变量类,我的理解apply通过列元素明智,所以每个元素都是一个字符,所以输出显示为字符,lapply和sapply函数在变量上工作它给变量类提供了字符或因子
lapply(df,class)
$a
[1] "factor"
$b
[1] "factor"
sapply(df,class)
a b
"factor" "factor"