strsplit不能始终如一地工作,字母之间的字符不是空格吗?

时间:2016-09-01 19:01:42

标签: r character whitespace

问题很简单,但我没有运气修理它。 strsplit()是一个相当简单的功能,我很惊讶我和我一样挣扎:

# temp is the problem string. temp is copy / pasted from my R code.
# i am hoping the third character, the space, which i think is the error, remains the error 
temp = "GS PG"

# temp2 is created in stackoverflow, using an actual space
temp2 = "GS PG"

unlist(strsplit(temp, split = " "))
[1] "GS PG"
unlist(strsplit(temp2, split = " "))
[1] "GS" "PG"


即使它不能在我这里尝试重现这个例子,这也是我遇到的问题。对于temp,代码不会因为某些奇怪的原因而在空间上拆分变量。任何想法将不胜感激!

最好,

编辑 - 我的示例未能重新创建该问题。作为参考,通过使用rvest从在线搜索代码在我的代码中创建了temp,并且出于某种原因,它必须抓取除正常空间之外的其他角色,我想?我需要按空格分割这些字符串。

2 个答案:

答案 0 :(得分:5)

尝试以下方法:

unlist(strsplit(temp, "\\s+"))

"\\s+"是对任何类型的空格的正则表达式搜索,而不仅仅是标准空间。

答案 1 :(得分:0)

与评论一样,

“空间”很可能实际上不是空间,而是其他一些空白字符。 请尝试以下任何一项来缩小范围:

whitespace <- c(" ", "\t" , "\n", "\r", "\v", "\f")
grep(paste(whitespace,collapse="|"), temp)

相关问题: How to remove all whitespace from a string?