[問題] Excel字串的處理

看板R_Language作者 (小毛怪)時間10年前 (2014/10/30 17:07), 10年前編輯推噓2(2012)
留言14則, 3人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手 [問題敘述]: 我的資料Excel檔裡面有兩個column, 第一個column他是id,第二的column是他的名字 因為他的名字都會有一些不必要的符號, 所以我想把一些符號改成空格 可是不太會用for loop... 請問要如何針對column 2 檢查每一個名字的每一個字母呢? 謝謝~ 例如: 將"<" 及 ">" 變空格 ┌───┬────┐ │ id1 │name<1> │ →name 1 ├───┼────┤ │ id2 │n<2>tea │ →n 2 tea ├───┼────┤ │ id3 │juice<3>│ →juice 3 └───┴────┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.100 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1414660042.A.FCD.html

10/30 17:51, , 1F
gsub(">"," ",gsub("<"," ",data[,2]))
10/30 17:51, 1F
那如果他還有其他標點符號呢?? 因為用 gsub 好像要知道他有哪些符號是我們要刪的? 但這個資料好像甚麼樣符號都有可能出現 ※ 編輯: qazzzzz (1.160.11.45), 10/30/2014 21:55:40

10/30 22:34, , 2F
如果是這樣你必須先定義什麼是要保留的文字.
10/30 22:34, 2F

10/30 22:34, , 3F
而什麼是要被取代的.
10/30 22:34, 3F

10/30 22:36, , 4F
比如說你可以定義 letters (英文字母) 是要保留的.
10/30 22:36, 4F

10/30 22:36, , 5F
其餘全部轉成空白.
10/30 22:36, 5F

10/30 22:52, , 6F
library(stringr)
10/30 22:52, 6F

10/30 22:52, , 7F
x = c("xz", "123", "gcb5c")
10/30 22:52, 7F

10/30 22:52, , 8F
y = rep(list(character(100)),length(x))
10/30 22:52, 8F

10/30 22:52, , 9F
for(i in 1:length(x)) for(j in 1:nchar(x[i]))
10/30 22:52, 9F

10/30 22:53, , 10F
y[[i]][j] = str_sub(x[i], j, j)
10/30 22:53, 10F

10/30 22:54, , 11F
unique(unlist(y))
10/30 22:54, 11F

10/30 22:55, , 12F
你就得到所有的字元, 再用上面的教學取代.
10/30 22:55, 12F

10/31 10:07, , 13F
keyword regexp punct
10/31 10:07, 13F

10/31 10:08, , 14F
gsub("[[:punct:]]", "", string)
10/31 10:08, 14F
謝謝大家的教學~!!!! ※ 編輯: qazzzzz (140.112.25.100), 11/04/2014 10:25:23
文章代碼(AID): #1KKV_A_D (R_Language)
文章代碼(AID): #1KKV_A_D (R_Language)