【发布时间】:2026-01-22 01:30:01
【问题描述】:
我想实现某种循环,将数据帧中的所有变量与一个常量制成表格,该常量是另一个变量。
例如,假设我有一个包含 3 个变量的数据框,例如下面的虚拟数据,我想生成给定的表格。
df <- data.frame(V1 = factor(c("L", "L", "XL", "M", "S", "XXL")),
V2 = factor(c("Tall", "Medium", "Tall", "Small", "Small", "Very Tall")),
V3 = factor(c("Vegan", "Vegetarian", "Non-V", "Vegan", "Non-V", "Non-V")))
attach(df)
table(V3, V3)
table(V3, V2)
table(V3, V1)
我的目标是创建每个单独的表并将它们编译成一个列表。进入列表后,我可以使用匿名函数的组合进行感兴趣的计算并应用家庭电话。但是,我需要找到一种方法来在包含许多变量的大型数据集上创建这些表,而无需手动创建每个表的繁琐工作。
我尝试过使用lapply、sapply 和for 循环,但似乎找不到适合我的方法。有没有一种方法可以跨所有变量创建表并将它们放入列表中?
【问题讨论】:
-
我认为我误读了您的问题,但使用
lapply提供了额外的答案。 -
这种方法效果很好,正是我想要的。我有点不清楚餐桌后发生了什么?我知道我们正在将表函数应用于 df 的子集,而没有我想比较的常量。 df[ , 1] 实现了什么?
-
df[, 1]是table的第二个参数,如table(df[, 2], df[, 1])。