一個數據幀的列做計數我有一個數據幀「SAMP」與列(姑且稱之爲「評級」),這需要幾個值(假設執行下列操作之一:「好」,「中」,‘壞’。)爲R中
我想組通過在其他幾列和計算的頻率‘好’,‘中等’和‘壞’,並在新的列報的頻率。 (因此,也許COL1是電影一年,COL2是流派,然後應該有三個多列告訴你有多少每種等級的有每年和流派。)
ddply(samp,c("col1","col2"), summarize,
good=table(samp$rating)["good"],
medium=table(samp$rating)["medium"],
bad=table(samp$rating)["bad"])
的問題是(我認爲)我定義的函數不是ddply輸出的組,而是samp的常量函數。我怎樣才能在這裏定義函數,使它們成爲組的功能?
我嘗試使用匿名函數:
ddply(samp,c("col1","col2"), summarize,
good=function(df)table(df$rating)["good"],
medium=function(df)table(df$rating)["medium"],
bad=function(df)table(df$rating)["bad"])
我永遠不能得到它雖然工作。我認爲我得到的最大錯誤是
Error in output[[var]][rng] <- df[[var]] :
incompatible types (from closure to logical) in subassignment type fix
所以把它放在我身上。在我嘗試使用948506 ddply和table的組合時,沒有出現什麼奇怪的簡單解決方案?謝謝。
你只是想計數?那麼'length(samp $ rating =='good')怎麼樣? – rawr
@rawr這個命令將返回邏輯向量的長度並且不計數'TRUE'。 –
意味着總和,科特迪瓦哦 – rawr