1

我需要在单列 R 数据框中插入一些缺少的换行符。数据收集阶段缺少这些换行符。

数据如下:

V1
Apple
OrangeBanana
BananaBananaBanana
Watermelon
GrapeBanana

所以“香蕉”之前的所有换行符都不见了

我想搜索“香蕉”并添加那些缺少的换行符,所以它看起来像:

V1
Apple
Orange
Banana
Banana
Banana
Banana
Watermelon
Grape
Banana
4

1 回答 1

3

这是一个稍微更通用的解决方案,但可以很容易地用于明确使用“香蕉”。

V1 <- c("Apple", "OrangeBanana", "BananaBananaBanana", "Watermelon", "GrapeBanana")

首先,让我们通过查找所有不是单词边界的大写字母并将它们替换为空格和大写字母来拆分它们:

splits <- gsub("(?:\\B)([[:upper:]])"," \\1" , V1, perl=TRUE)
[1] "Apple" "Orange Banana" "Banana Banana Banana" "Watermelon" "Grape Banana"

然后由空格字符分割并从列表转换为向量:

unlist(strsplit(splits, " "))
[1] "Apple" "Orange" "Banana" "Banana" "Banana" "Banana" "Watermelon" "Grape" "Banana"   

或者在一行中:

unlist(strsplit(gsub("(?:\\B)([[:upper:]])"," \\1" , V1, perl=TRUE), " "))

编辑:对于明确与“香蕉”一起使用的正则表达式:

gsub("(?:\\B)(Banana)"," \\1" , V1, perl=TRUE)
于 2012-11-22T07:05:53.573 回答