R - 以字母开头的空格以大写字母开头,为完整列

时间:2018-04-16 05:43:07

标签: r

我有一个从XLSX导入到R的列,其中每行都有一个没有空格的句子,但是单词以大写字母开头。试图使用

gsub("([[:upper:]])([[:upper:]][[:lower:]])", "\\1 \\2", x)

但如果我开始转换每一行,这是有效的

示例

1 HowDoYouWorkOnThis
2 ThisIsGreatExample
3 ProgrammingIsGood

预期

1 How Do You Work On This
2 This Is Great Example
3 Programming Is Good 

1 个答案:

答案 0 :(得分:1)

这是你之后的事吗?

s <- c("HowDoYouWorkOnThis", "ThisIsGreatExample", "ProgrammingIsGood");

sapply(s, function(x) trimws(gsub("([A-Z])", " \\1", x)))
#       HowDoYouWorkOnThis        ThisIsGreatExample         ProgrammingIsGood
#"How Do You Work On This"   "This Is Great Example"     "Programming Is Good"

或使用stringr::str_replace_all

library(stringr);
trimws(str_replace_all(s, "([A-Z])", " \\1"));
#[1] "How Do You Work On This" "This Is Great Example"
#[3] "Programming Is Good"