【发布时间】:2016-01-03 23:08:50
【问题描述】:
对于这个问题,我有以下示例,它是一个以两个字符串为行的矩阵:
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 |
+------------------------------+
是否可以只省略名字和姓氏之间的空格(例如“Henry”和“Buchanon”之间的空格并保持其他空格不变?下面的代码存在两个问题:1)代码删除了字母搜索条件和 2) 它仅适用于单间距。
gsub("([A-z])[[:space:]]([A-z])", "", mylist)
+--------------------------------------+
| [1,] "1 Henruchanon 45 60 70" |
+--------------------------------------+
| [2,] "2 Julie Tiscani 80 50 70" |
+--------------------------------------+
【问题讨论】:
-
为什么不只是
mytable$Name <- paste(mytable$V2,mytable$V3) -
试试
gsub("(?<=[A-z])[[:space:]]+(?=[A-z])", "", mylist,perl=TRUE)