【发布时间】:2020-11-25 08:46:47
【问题描述】:
我在列上有一个不同类型的变量(数字、字符、因子)的数据框,我想立即对其进行总结。我有一个 ID 列要根据其他列的级别来统计。
如果它们是字符或因素,每列都有不同的级别,我想知道每个级别的 ID 的频率。此外,如果列是数字,我希望返回摘要统计信息,例如平均值、标准差和分位数。
理想情况下,我会使用 dplyr 和 group_by() 和 summarise() 函数来执行此操作,但它需要我一次对每一列进行分组,然后指定我是否希望它与 n() 一起计数,或者我是否需要汇总统计信息因为是数字。
在SAS 中有一个名为PROC FREQ 的命令,我正在尝试复制它。
df<-
data.frame(
ID = c(1,2,3,4,5,6),
Age = c(20, 30, 45, 60, 70, 18),
Car = c("Zum", "Yat", "Zum", "Zum", "Yat", "Rel"),
Side = c("Left", "Right", "Left", "Left", "Right", "Right")
)
结果:
df %>% group_by(Car) %>% summarise(n = n())
df %>% group_by(Side) %>% summarise(n = n())
df %>% summarise(mean = mean(Age))
我想在单个输出和多个变量中获得此结果。我真正的 df 包含数十列,这些列应该是分组变量还是不取决于它们的性质。此外,ID 甚至可以使用相同的值重复,以便汇总观察结果。
【问题讨论】: