我想拆分以下字符串
"ATextIWantToDisplayWithSpaces"
像这样
A Text I Want To Display With Spaces.
我在R
strsplit(x="ATextIWantToDisplayWithSpaces", split=[:upper:])
产生此错误
Error: unexpected '[' in "strsplit(x="ATextIWantToDisplayWithSpaces", split=["
任何帮助都将受到高度赞赏。感谢
答案 0 :(得分:25)
就这样做。它的工作原理是:(a)找到一个大写字母,(b)将它捕获到一个组中;(c)用它前面的空格替换它。
gsub('([[:upper:]])', ' \\1', x)
答案 1 :(得分:7)
您的具体问题的答案(“我如何拆分大写字母?”)是
strsplit(x="ATextIWantToDisplayWithSpaces", split="[[:upper:]]")
但@ Ramnath的回答是你真正想要的。 strsplit
扔掉它分裂的字符。来自splitByPattern
的{{1}}函数更接近,但它仍然不会以最方便的形式返回结果。
答案 2 :(得分:0)
我知道这是一个旧的方法,但是我将上面的解决方案调整为我需要的一种方法,在该方法中,我需要用大写字母拆分数据帧中列的值,然后只保留第二个元素。此解决方案使用dplyr和purrr:
df %>% mutate(stringvar= map(strsplit(stringvar, "(?!^)(?=[[:upper:]])", perl=T),~.x[2]) %>% unlist())