R:正确使用和应用

R:正确使用和应用,r,R,我想创建一个简单的代码来连接列,然后计算数据框中有多少个类别变量。我的问题是,当我使用apply时,我得到了正确的结果,但有五次 例如: a <- c('car','bike',NA,'moto','skate') b <- c(NA,'car',NA,NA,'bike') c <- c('car',NA,NA,'skate',NA) d <- c('moto','skate',NA,'car',NA) data <- data.frame(a,b,c,d) 然

我想创建一个简单的代码来连接列,然后计算数据框中有多少个类别变量。我的问题是,当我使用
apply
时,我得到了正确的结果,但有五次

例如:

a <- c('car','bike',NA,'moto','skate')
b <- c(NA,'car',NA,NA,'bike')
c <- c('car',NA,NA,'skate',NA)
d <- c('moto','skate',NA,'car',NA)

data <- data.frame(a,b,c,d)
然后
unlist
并使用
table
计算我的数据中有多少分类变量:

one_column <- unlist(one_column)
table(one_column)

您创建的
x
向量比每列大5倍,因此它正在回收数据。你想要的是这个

x <- vector('list',length = NCOL(data))

x为什么不直接使用:
table(unlist(data))
??因为我想练习
apply
function
x它需要的是length=NCOL(data),而不是length=NROW(data),因为你在行上使用apply。谢谢,请注意
table(one_column)/5
x <- vector('list',length = NCOL(data))