我有一个从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
答案 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"