对于这个问题,我有以下的例子是两个字符串一个矩阵行: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