下面是類似於我的數據集物品的一部分:計數標籤並創建中的R彙總表
require(dplyr)
alldata
site date percent_rank Label
01A 2013-01-01 0.32 Normal
01B 2013-01-01 0.12 Low
01C 2013-01-01 0.76 High
02A 2013-01-01 0 N/A
02B 2013-01-01 0.16 Low
02C 2013-01-01 0.5 Normal
01A 2013-01-02 0.67 Normal
01B 2013-01-02 0.01 Low
01C 2013-01-02 0.92 High
我分配的每個PERCENT_RANK基於所述值(0至0.25至0.75至1的標籤三類)。我現在想生產這種格式的彙總表:
site Low Normal High Missing
01A 32 47 92 194
01B 232 23 17 93
01C 82 265 12 6
,其中每個站點將有低,中,高值的出現與該網站的標籤的所有日期的計數(有一個每年的每一天),並且N/A值將被計算爲「缺失」列。
我曾嘗試以下:
alldata <- %>% group_by(site) %>% mutate(length(Label == "Low"))
返回的所有記錄的總價值,而不是每個網站「低」的計數,並
alldata <- %>% group_by(site) %>% mutate(length(which(Label == "Low")))
返回幾個值比記錄總數高出一千個。我的想法是,我會重複這個功能,創建四個新的列和四個單獨的mutate行(每個類別一個),這將產生我的彙總表。我也嘗試過一些aggregate()的變體,儘管函數組件對我的目標不太清楚。這看起來應該是一個非常簡單的事情(並且group_by很好地爲我計算了百分比排名和相關標籤),但我還沒有找到解決方案。任何提示都非常感謝!
'dplyr'包中有'count'函數。也許這是有幫助的。 – user2100721
如果你使用'which'長度就足夠了,但是使用邏輯向量,'sum'會給出計數。 – akrun