對於這個問題,我有以下的例子是兩個字符串一個矩陣行:R:GSUB有條件地刪除空格
mylist <- rbind("1 Henry Buchanon 45 60 70", "2 Julie Tiscani 80 50 70")
我想在一個表中這個數據,所以最直接的方式會做的事:
mytable <- read.table(textConnection(mylist))
其中一個問題產生下表(對我來說) - 第一個名字和姓氏是在兩個單獨的列(V2和V3)。我更喜歡第二張表的名字和姓在同一列(V2)。
+------------------------------+
| V1 V2 V3 V4 V5 V6 |
+------------------------------+
| 1 1 Henry Buchanon 45 60 70 |
| 2 2 Julie Tiscani 80 50 70 |
+------------------------------+
+------------------------------+
| V1 V2 V3 V4 V5 |
+------------------------------+
| 1 1 HenryBuchanon 45 60 70 |
| 2 2 JulieTiscani 80 50 70 |
+------------------------------+
是否有可能僅省略了姓和名之間的空間(「亨利」和「布坎南」之間如並保持其他空間不變下面的代碼提供了兩個問題:1)代碼刪除搜索條件的字母和2)它只適用於單間距。
gsub("([A-z])[[:space:]]([A-z])", "", mylist)
+--------------------------------------+
| [1,] "1 Henruchanon 45 60 70" |
+--------------------------------------+
| [2,] "2 Julie Tiscani 80 50 70" |
+--------------------------------------+
爲什麼不只是'MYTABLE $名稱< - 粘貼(MYTABLE $ V2,MYTABLE $ V3)' – Chris
嘗試'GSUB(」 (?<= [Az])[[:space:]] +(?= [Az])「,」「,mylist,perl = TRUE)' – nicola