我有一個公司的數據集按類別分組。一些公司有多個類別,可以在多個列上重複。我想知道如何根據類別(例如每個類別的平均值)來分析它們。下面是一個示例data.frame我想分析R中多個列的重複類別
a <- factor(c("cat1", "cat2", "cat3", "cat4", "cat2"))
b <- factor(c("cat5", "cat4", "cat2", "cat1", "NA"))
comp <- factor(c("company1", "company2", "company3", "company4","company5"))
score <- c(1, -1, 2, -2, 1.5)
df <- data.frame(a, b, comp, score)
# a b comp score
#1 cat1 cat5 company1 1.0
#2 cat2 cat4 company2 -1.0
#3 cat3 cat2 company3 2.0
#4 cat4 cat1 company4 -2.0
#5 cat2 NA company5 1.5
一個任務是瞭解每個類別的平均值。從注視這個簡單的數據集,我知道cat1的平均值將是-0.5。我有一些粗糙的方法,但是後面沒有過的任務:
我曾考慮過將融化的data.frame,這樣一類因素的每個實例將有自己的行(在這種情況下, ,維度將是10x1,每行的每個類別 - 分數對)。
我也想過用dplyr和分組由唯一的名稱,從類似
mynames <- unique(c(levels(a), levels(b)))
但是,dplyr要求分組是在data.frame向量(除非有一些方法來按照我不知道的模式或因素級別,這將是偉大的!)
- 最後,我可能不需要製作單獨的數據框。也許有一種方法可以使用apply將功能應用到獨特的類別級別,例如平均值。
謝謝你的幫助!
是否擔心熔化成長格式的時間太長您的實際數據集?看起來這個任務在長格式數據集上很容易... – aosmith