【发布时间】:2017-06-12 11:52:56
【问题描述】:
我有一列名称不同:
X <- c("Ashley, Tremond WILLIAMS, Carla", "Claire, Daron", "Luw, Douglas CANSLER, Stephan")
在第二个空格之后,它以第二个人的名字开头。例如,Ashley, Tremond 是一个人,WILLIAMS, Carla 是另一个人。
我试过了:
strsplit(X, "\\,\\s|\\,|\\s")
但它除以所有空格,所以我得到:
strsplit(X, "\\,\\s|\\,|\\s")
[[1]]
[1] "Ashley" "Tremond" "WILLIAMS" "Carla"
[[2]]
[1] "Claire" "Daron"
[[3]]
[1] "Luw" "Douglas" "CANSLER" "Stephan"
我怎样才能只在第一个空格之后分开,所以我得到了?:
[1] "Ashley, Tremond" "WILLIAMS, Carla"
[[2]]
[1] "Claire, Daron"
[[3]]
[1] "Luw, Douglas" "CANSLER, Stephan"
提前感谢您的所有帮助
【问题讨论】:
-
strsplit(X, "[^,] ")给出所需的输出。它在空格前面没有逗号的地方拆分字符串。 -
您需要将其取消列出以维护向量:
unlist(strsplit(X, split = "[A-z] [A-z]")) -
@RyanMorton ,如果您跳过
unlist调用,它会保留原始输入中名称的分组级别,并匹配预期输出 -
在我最初的回复之后,预期的结果被编辑到帖子中,但是是的。 strsplit() 返回一个列表。
-
@ykt 和 Ryan 非常感谢您的帮助,它有效