数据框中变量制表的循环
loop for tabulation of variables in data frame
我有一个 df
和 n
个变量。
我想遍历变量的一个子集并产生一个频率 table.
例如,下面 df
:
id a b c d
1 0 1 0 1
2 1 0 1 0
3 0 1 0 1
我尝试执行以下操作但没有成功:
varlist <- c("a", "c")
for (i in varlist){
print(table(df$i))
}
(首先,你的矩阵df
被转换为一个数据框:)
df <- setNames(as.data.frame(df), letters[1:4])
$
不适用于变量。您必须改用 [[
:
for (i in varlist){
print(table(df[[i]]))
}
但是,对于您的问题更简单的解决方案是 lapply
:
lapply(df[varlist], table)
来自Extract
的帮助页面:
The main difference is that $
does not allow computed indices, whereas [[
does.
我有一个 df
和 n
个变量。
我想遍历变量的一个子集并产生一个频率 table.
例如,下面 df
:
id a b c d
1 0 1 0 1
2 1 0 1 0
3 0 1 0 1
我尝试执行以下操作但没有成功:
varlist <- c("a", "c")
for (i in varlist){
print(table(df$i))
}
(首先,你的矩阵df
被转换为一个数据框:)
df <- setNames(as.data.frame(df), letters[1:4])
$
不适用于变量。您必须改用 [[
:
for (i in varlist){
print(table(df[[i]]))
}
但是,对于您的问题更简单的解决方案是 lapply
:
lapply(df[varlist], table)
来自Extract
的帮助页面:
The main difference is that
$
does not allow computed indices, whereas[[
does.