Re: [問題] plyr

看板R_Language作者 (健康第一)時間9年前 (2015/07/03 11:48), 9年前編輯推噓0(002)
留言2則, 2人參與, 最新討論串4/5 (看更多)
應該可以寫得更簡潔,但這應該是你想要的,看不懂的話,可以google一下spread的用法 library(tidyr) library(dplyr) df <- data.frame(id = rep(LETTERS[1:5],4), year = rep(2011:2014, 5), cost= sample(200:500, 20)) long <- df %>% group_by(id, year) %>% summarize(count=n(), amount=sum(cost)) %>% ungroup() count_wide <- long %>% select(id, year, count) %>% mutate(year=paste0("count_", year)) %>% spread(year, count) cost_wide <- long %>% select(id, year, amount) %>% mutate(year=paste0("amount_", year)) %>% spread(year, amount) total_wide <- df %>% group_by(id) %>% summarize(total_count = n(), total_cost = sum(cost)) wide <- count_wide %>% left_join(cost_wide, "id") %>% left_join(total_wide, "id") ※ 引述《psinqoo (零度空間)》之銘言: : 延伸問題 : 原始資料 : id year cost : D 2012 120 : E 2013 300 : F 2014 200 : A 2015 155 : E 2011 200 : F 2014 160 : B 2013 165 : B 2015 185 : C 2012 350 : A 2014 310 : E 2014 225 : F 2015 175 : 想變成這樣子 : ID 12計數 13計數 14計數 15計數 2012金額 2013金額 2014金額 2015金額 總計數 總金額 : A : B : C : D : E : F : 雖然 資料量少 EXCEL 可以計算 : 我想知道R 是否也能用少量語法做到 : ※ 引述《celestialgod (攸藍)》之銘言: : : library(plyr) : : library(dplyr) : : set.seed(1) : : d <- data.frame(year = rep(2000:2002, each = 3), : : count = round(runif(9, 0, 20))) : : ddply(d, "year", summarise, tol = sum(count), count_year = n()) : : # year tol count_year : : # 1 2000 23 3 : : # 2 2001 40 3 : : # 3 2002 45 3 : : # 單純用plyr做 : : set.seed(1) : : d <- data.frame(year = rep(2000:2002, each = 3), : : count = round(runif(9, 0, 20))) : : d$ones = 1 : : ddply(d, "year", summarise, tol = sum(count), count_year = sum(ones)) : : # 用dplyr + magrittr : : library(dplyr) : : library(magrittr) : : set.seed(1) : : d <- data.frame(year = rep(2000:2002, each = 3), : : count = round(runif(9, 0, 20))) : : d %>% group_by(year) %>% summarise(tol = sum(count), count_year = n()) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 69.255.1.0 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1435895295.A.12A.html ※ 編輯: dreamreader (69.255.1.0), 07/03/2015 11:52:59

07/03 11:55, , 1F
囧, dcast一行解決...
07/03 11:55, 1F

07/03 11:59, , 2F
立刻來學一下dcast哈
07/03 11:59, 2F
文章代碼(AID): #1LbWN_4g (R_Language)
討論串 (同標題文章)
本文引述了以下文章的的內容:
4
4
完整討論串 (本文為第 4 之 5 篇):
0
3
9年前, 07/01
4
4
文章代碼(AID): #1LbWN_4g (R_Language)