【发布时间】:2023-03-20 00:55:01
【问题描述】:
所以我希望将一个字符串变量分成几部分,但是我将它们分成的子字符串长度不同,而且我没有像 . , |等等所以我从一个数据框开始,比如:
df <- data.frame(x=c("bigApe","smallApe","bigDog","smallDog"),c(1,2,5,3))
x y
bigApe 1
smallApe 2
bigDog 5
smallDog 3
我希望它以如下形式结束:
size anim y
1 big Ape 1
2 small Ape 2
3 big Dog 5
4 small Dog 3
我已经查看了使用 separate() 的东西,它们似乎应该能够做到这一点,但它们似乎都在寻找可预测的分隔符/空白或设置的子字符串长度。我可以将其作为正则表达式来查找大写字母,但它不会保留该字母:
df %>% separate(x,c("size","anim"),sep="[A-Z]")
size anim num
1 big pe 1
2 small pe 2
3 big og 5
4 small og 3
我正在寻找的数据没有。我想我可以在 stringr 中添加一些东西,但即使在那里我发现的所有东西似乎都需要指定的字符串长度。我当然可以组合一个可怕的 for 循环,但一定有比这更快的方法!
谢谢!
【问题讨论】: