看板 R_Language 關於我們 聯絡資訊
可以試試看下面的code會比較簡潔: medical <- as_tibble(medical) %>% group_by(id) %>% mutate(age = max(age), docvis_sum = sum(docvis), hhninc_mean = mean(hhninc)) %>% select(id, docvis_sum, age, hhninc_mean) %>% slice(length(id)) %>% ungroup() ※ 引述《piggood (成為有品味的男人)》之銘言: : ※ 引述《ntpuisbest (阿龍)》之銘言: : : library(COUNT) : : data(rwm5yr) : : medical<-rwm5yr : : https://imgur.com/xLr3I5j : : 我的目的是像這樣 : : 同個id是同個人 : : 我想要把資料整理成 : : 去計算同個人的 總共 的看病次數 : : 其他的column 就用 同個id最後的 資訊 : : 最後要整理成 : : id docvis age : : 1 1 56 : : 2 4 48 : : 3 13 62 : : 請問有套件可以做到這件事情嗎 : : 還是怎麼寫這個迴圈呢 : 目前想到的方式 : 但也不是很簡潔 : 不過還能用 : # 先建立一個 medical1 ,除了 docvis 和 hhninc 之外,都取最後一筆觀察值的資料 : medical1 <- medical %>% : group_by(id) %>% : summarise_at(vars(-docvis,-hhninc), last) : # 再建 medical2 專門處理 docvis 跟 hhninc 的各別需求 : medical2 <- medical %>% : group_by(id) %>% : summarise(sum(docvis), mean(hhninc)) : # 合併在一起 : medical3 <- data.frame(medical2,medical1) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.141.84.219 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1529939564.A.CC9.html
piggood: 喜歡這個版本~推 06/26 18:50
frojet: 這個讚 03/13 13:56