[問題] 進行特定欄位加總

作者: directly (天使的圓舞曲)   2017-06-28 11:57:36
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
想要進行特定欄位(特定變數)的加總,但不知道怎麼處理
[程式範例]:
資料:
id A1 B1 B2 A2 C1 C2 C3
1 1 2 0 4 5 6 7
2 5 6 8 8 1 3 2
請問如果我希望
A1+A2形成一個新的變數,變成新的一欄叫作A,
B1+B2形成一個新的變數,變成新的一欄叫作B,
C1+C2+C3形成一個新的變數,變成新的一欄叫作C,
想要得到:
id A B C
1 5 2 18
2 13 14 6
我試著用aggregate、colSums去做但沒有成功,
請問用有人可以出手指導嗎?
謝謝!
作者: cywhale (cywhale)   2017-06-28 12:09:00
data.table::melt(DT,measure=patterns("^A","^B","^C"))
作者: ianmao (qq)   2017-06-28 15:28:00
df %>% dplyr::mutate(A=A1+A2,B=B1+B2,C=C1+C2+C3) %>%dplyr::select(A, B, C)我漏了id,第二行改成dplyr::select(id, A, B, C)如果ABC欄位很多,A<-df %>% select(starts_with("A") %>%apply(sum, MARGIN = 1),然後分別製作B,C最後合併 df_final <- cbind(id = df$id, A, B, C)
作者: silvertai (())   2017-07-02 00:46:00
樓上第一種作法的第一步也可以把mutate改成transmute就會直接只留下新產生的A, B, C了 阿但是這樣會沒有id

Links booklink

Contact Us: admin [ a t ] ucptt.com