看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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
andrew43: 可以用 strsplit() http://www.ideone.com/ZX5db8 07/03 13:49
paranoia5201: 神人!沒想到用三行就可KO、請受小弟一拜。 07/03 14:54
celestialgod: https://pastebin.com/9FHm51SK 07/03 17:07