看板 R_Language 關於我們 聯絡資訊
這個問題只用dplyr就可以了: early <- filter(df, stage == "early") %>% group_by(Firm, year) %>% summarise(early = n()) later <- filter(df, stage == "later") %>% group_by(Firm, year) %>% summarise(later = n()) full_join(early, later) 這應該就是你要的! 另外一個給新手的小建議, dplyr 設計的API, 可以解決許多實務問題 這背後是有一些代數理論的支持的. 長久以來SQL在資料庫的成功也證實這套API可以解決許許多多的問題 ps. dplyr的API設計等價於SQL 所以往這方向練習應該是沒錯 ※ 引述《atomo (Mr.Wu)》之銘言: : : ctrl + y 可以刪除一整行,請將不需要的內容刪除 : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 原始資料: : Firm stage year : A early 2012 : A early 2012 : A later 2012 : A later 2013 : B early 2012 : B early 2013 : B early 2013 : B later 2012 : C early 2013 : C early 2013 : C later 2013 : ....... : 想讓資料會按公司名稱和年度去計算當年度的early以及later的數目 : 想變成: : Firm year early later : A 2012 2 1 : A 2013 0 1 : B 2012 1 0 : B 2013 2 0 : C 2013 2 1 : 不好意思,剛開始使用r 不太清楚如何敘述問題和寫程式碼,目前是使用dplyr的 : group_by 和 n() 兩個來練習不知道方向有無錯誤,謝謝有任何需要補充的我在補充 : [環境敘述]: : : R version 3.2.3 (2015-12-10) : Platform: x86_64-apple-darwin13.4.0 (64-bit) : Running under: OS X 10.11.3 (El Capitan) : : [關鍵字]: : : 合併資料 計算個數 : -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.30.168 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1460049065.A.13E.html
atomo: 謝謝大大,之前就是靠您的swirl教材自學來初步熟悉r 04/08 09:55