2017-08-03 81 views
1

我試圖選擇正確的列從數據幀列內使用ddply總數的總結:如何總結一個串引用

df2 <- ddply(df1,'col1', summarise, total = sum(substr(variable,1,3))) 

這似乎並不奏效,因爲你可以」總結一個字符,但我想傳遞給列的引用,而不是sum字符串的結果。有沒有辦法解決這個問題?

實施例數據&希望的輸出:

變量= 「2017年8月」

col1 Jun Jul Aug 1 A 1 2 3 2 A 1 2 3 3 A 1 2 3 4 A 1 2 3 5 A 1 2 3 6 B 2 3 4 7 B 2 3 4 8 B 2 3 4 9 C 3 4 5 10 C 3 4 5 Desired Output: 1 A 15
2 B 12 3 C 10

+0

你能提供一些示例數據,以及你期待什麼結果的例子嗎? –

+0

剛剛添加了,對於慢回覆抱歉 – Jess

回答

0

這適用於dplyr代替plyr

# create data 
df1 <- data.frame(
    col1 = c(rep('A', 5), rep('B', 3), rep('C', 2)), 
    Jun = c(1, 1, 1, 1, 1, 2, 2, 2, 3, 3), 
    Jul = c(2, 2, 2, 2, 2, 3, 3, 3, 4, 4), 
    Aug = c(3, 3, 3, 3, 3, 4, 4, 4, 5, 5)) 

variable = 'Aug 2017' 

# load dplyr library 
library(dplyr) 
# summarize each column that matches some string 
df1 %>% 
    select(col1, matches(substr(variable, 1, 3))) %>% 
    group_by(col1) %>% 
    summarize_each(funs = 'sum') 
# A tibble: 3 × 2 
    col1 Aug 
    <fctr> <dbl> 
1  A 15 
2  B 12 
3  C 10 

我也強烈建議你閱讀關於非標準和標準評價,在這裏: http://adv-r.had.co.nz/Computing-on-the-language.html

+0

作品,謝謝!我會檢查閱讀。 – Jess