我刚刚发现了 plyr频率表的强大功能,其中包含 R 中的几个变量, 我仍在努力理解它是如何工作的,我希望这里的一些可以帮助我。
我想创建一个表(数据框),我可以在其中组合频率和汇总统计信息,但无需对值进行硬编码。
这是一个示例数据集
require(datasets)
d1 <- sleep
# I classify the variable extra to calculate the frequencies
extraClassified <- cut(d1$extra, breaks = 3, labels = c('low', 'medium', 'high') )
d1 <- data.frame(d1, extraClassified)
我正在寻找的结果应该是这样的:
require(plyr)
ddply(d1, "group", summarise,
All = length(ID),
nLow = sum(extraClassified == "low"),
nMedium = sum(extraClassified == "medium"),
nHigh = sum(extraClassified == "high"),
PctLow = round(sum(extraClassified == "low")/ length(ID), digits = 1),
PctMedium = round(sum(extraClassified == "medium")/ length(ID), digits = 1),
PctHigh = round(sum(extraClassified == "high")/ length(ID), digits = 1),
xmean = round(mean(extra), digits = 1),
xsd = round(sd(extra), digits = 1))
我的问题:如何在不对值进行硬编码的情况下做到这一点?
记录:我试过这段代码,但它不起作用
ddply (d1, "group",
function(i) c(table(i$extraClassified),
prop.table(as.character(i$extraClassified))),
)
提前致谢