2017-04-05 81 views
0

我是Rstudio的早期用戶,我有一個很簡單的問題,但不幸的是我無法解決它。 我只想通過包含在df第一列的單詞來聚合我的data.frame的行。 data.frame由五列組成: 第一個是由單詞構成的; 第二個,第三個,第四個,第五個由數字值組成。如何通過名稱來聚合data.frame的行,並將R上的通信列的數值相加?

例如,如果數據是:

SecondWord X Y Z Q 
NO   1 2 2 1 
NO   0 0 1 0 
YES   1 1 1 1 

我希望看到這樣的結果:

SecondWord X Y Z Q 
NO   1 2 3 1 
YES   1 1 1 1 

怎麼能怎麼辦? 我曾嘗試使用下面的方法:

test <- read.csv2("test.csv") 
df<-aggregate(.~Secondword,data=test, FUN = sum, na.rm=TRUE) 

但值沒有那些我希望看到的。 謝謝你的未來幫助併爲「簡單」問題感到抱歉。

+0

''總對我的作品(〜SecondWord,測試,和)。在應用'aggregate'之前打印'test'一次。 –

回答

0

ddply應該可以工作。

例如,像:

library(plyr) 
grouped <- ddply(test, "Secondword", numcolwise(sum)) 
+2

通常,您應該確定問題主體中使用的軟件包,並參考像「?ddply」這樣的幫助文件,而不是使用可能會在幾年後突破的鏈接。 – Frank

+0

那麼,我預計Google從現在開始還會活幾年。如果中斷,請在那裏搜索ddply。 – paoloqaz

1

您還可以使用tidyverse

library(tidyverse) 
df <- test %>% 
    group_by(SecondWord) %>% 
    summarize_each(funs(sum)) 

df 
# SecondWord  X  Y  Z  Q 
#   NO  1  2  3  1 
#  YES  1  1  1  1 
相關問題