我剛剛發現了plyr frequency table with several variables in 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))),
)
感謝
爲什麼不直接編寫自己的函數,而是使用'summarise'? – joran 2012-08-09 18:18:48
謝謝喬蘭。事實是:我不知道這個功能如何看起來像。我嘗試了幾個想法來使用表函數無濟於事。僅供參考:我使用的數據有幾個因素。 – user1043144 2012-08-09 18:32:10