作者qazzzzz (小毛怪)
看板R_Language
標題[問題] Excel字串的處理
時間Thu Oct 30 17:07:19 2014
[問題類型]:
程式諮詢(我想用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://webptt.com/m.aspx?n=bbs/R_Language/M.1414660042.A.FCD.html
1F:→ koai: gsub(">"," ",gsub("<"," ",data[,2])) 10/30 17:51
那如果他還有其他標點符號呢??
因為用 gsub 好像要知道他有哪些符號是我們要刪的?
但這個資料好像甚麼樣符號都有可能出現
※ 編輯: qazzzzz (1.160.11.45), 10/30/2014 21:55:40
2F:推 Edster: 如果是這樣你必須先定義什麼是要保留的文字. 10/30 22:34
3F:→ Edster: 而什麼是要被取代的. 10/30 22:34
4F:→ Edster: 比如說你可以定義 letters (英文字母) 是要保留的. 10/30 22:36
5F:→ Edster: 其餘全部轉成空白. 10/30 22:36
6F:推 Edster: library(stringr) 10/30 22:52
7F:→ Edster: x = c("xz", "123", "gcb5c") 10/30 22:52
8F:→ Edster: y = rep(list(character(100)),length(x)) 10/30 22:52
9F:→ Edster: for(i in 1:length(x)) for(j in 1:nchar(x[i])) 10/30 22:52
10F:→ Edster: y[[i]][j] = str_sub(x[i], j, j) 10/30 22:53
11F:→ Edster: unique(unlist(y)) 10/30 22:54
12F:→ Edster: 你就得到所有的字元, 再用上面的教學取代. 10/30 22:55
13F:→ obarisk: keyword regexp punct 10/31 10:07
14F:→ obarisk: gsub("[[:punct:]]", "", string) 10/31 10:08
謝謝大家的教學~!!!!
※ 編輯: qazzzzz (140.112.25.100), 11/04/2014 10:25:23