[問題] 字串元素個數計算跟加總?

看板R_Language作者 ( )時間8年前 (2017/03/17 11:51), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/3 (看更多)
不好意思,新手又來問問題了 假設我有如下的資料 no1 ABAEDHD no2 ABCCREA no3 GCDEHIRE 我想得到 A B C D E G H I 4 3 3 3 4 1 2 1 這樣的結果 就是把第二欄位 不管哪一行的字串 的字元計數加總 我自己的作法是用迴圈 先算出每一行的計數最後再加總 想請問有沒有更快更有效率的方式? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.32.9 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1489722679.A.487.html

03/17 12:29, , 1F
do.call("paste",list(dt$V2, collapse="")) %>%
03/17 12:29, 1F

03/17 12:30, , 2F
strsplit(split="") %>% table()
03/17 12:30, 2F

03/17 13:01, , 3F
table(unlist(sapply(dt$no, function(x)
03/17 13:01, 3F

03/17 13:01, , 4F
strsplit(x,""))))
03/17 13:01, 4F

03/17 19:10, , 5F
一樓做法比較好,vectorize程度比較高
03/17 19:10, 5F

03/17 21:08, , 6F
為什麼要do.call? 直接貼起來不就好了?
03/17 21:08, 6F

03/18 08:33, , 7F
沒差(攤手,do.call => do a function call
03/18 08:33, 7F

03/18 08:34, , 8F
你用paste0(dt$V2, collapse="")跟
03/18 08:34, 8F

03/18 08:34, , 9F
do.call("paste",list(dt$V2, collapse="")) 是一樣
03/18 08:34, 9F

03/18 08:34, , 10F
do.call第一個element可以不用quote拉~~
03/18 08:34, 10F

03/18 08:34, , 11F
argument
03/18 08:34, 11F
文章代碼(AID): #1OorqtI7 (R_Language)
文章代碼(AID): #1OorqtI7 (R_Language)