[問題] 欄位分割、字串取代

看板R_Language作者 (社會黑暗、行路難)時間5年前 (2019/07/03 13:23), 5年前編輯推噓0(003)
留言3則, 3人參與, 5年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 【原始資料】 > cbind(head(tao$交易筆棟數)) [,1] [1,] "土地1建物1車位2" [2,] "土地1建物1車位1" [3,] "土地1建物1車位0" [4,] "土地1建物1車位1" [5,] "土地1建物1車位1" [6,] "土地1建物1車位0" 【預期目標】 土地數 建物數 車位數 1 1 2 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 [程式範例]: 以下是我成功做出的方法,想請教有無更聰明的方式。 ##先將欄位中的文字逐一取代成'_' tao$trade_n <- str_replace(tao$交易筆棟數, '土地', '_') tao$trade_n <- str_replace(tao$trade_n, '建物', '_') tao$trade_n <- str_replace(tao$trade_n, '車位', '_') tao$trade_n <- paste0('0', tao$trade_n) ##看一下新創欄位的模樣 > head(tao$trade_n) [1] "0_1_1_2" "0_1_1_1" "0_1_1_0" "0_1_1_1" "0_1_1_1" "0_1_1_0" ##開始逐欄分割 library(dplyr) library(tidyr) tao <- tao %>% separate(trade_n, c('trade_n_NotUse', '土地數', "建物數", "車位數"), "_") tao$土地數 <- as.numeric(tao$土地數) tao$建物數 <- as.numeric(tao$建物數) tao$車位數 <- as.numeric(tao$車位數) ##結果檢視 > head(cbind(tao$土地數, tao$建物數, tao$車位數)) [,1] [,2] [,3] [1,] 1 1 2 [2,] 1 1 1 [3,] 1 1 0 [4,] 1 1 1 [5,] 1 1 1 [6,] 1 1 0 謝謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.137.65 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1562131416.A.E93.html ※ 編輯: paranoia5201 (36.229.137.65 臺灣), 07/03/2019 13:29:53

07/03 13:49, 5年前 , 1F
可以用 strsplit() http://www.ideone.com/ZX5db8
07/03 13:49, 1F

07/03 14:54, 5年前 , 2F
神人!沒想到用三行就可KO、請受小弟一拜。
07/03 14:54, 2F

07/03 17:07, 5年前 , 3F
文章代碼(AID): #1T73lOwJ (R_Language)
文章代碼(AID): #1T73lOwJ (R_Language)