在 R 列中的每个字母后添加 space
Adding space after every letter in R column
我有 4 列的数据框,我需要在每个列之后添加 space,这样值就会拆分。整个数据框有 8064 行。谢谢。
CustomerI V1 V2 V3
1 1231231231 l22I34 l22 l22
2 1231231233 l7 l7I19 l7
3 1231231234 l31 l7 l31
4 1231231235 l31l7 l7 l31l7
5 1231231236 l16 l22 l16
6 1231231237 l31 l31 l31
想要的结果
CustomerI V1 V2 V3
1 1231231231 l22 I34 l22 l22
2 1231231233 l7 l7 I19 l7
3 1231231234 l31 l7 l31
4 1231231235 l31 l7 l7 l31 l7
5 1231231236 l16 l22 l16
6 1231231237 l31 l31 l31
我们可以将 gsub
与正则表达式一起使用
df1[-1] <- lapply(df1[-1], function(x)
gsub("(?<=[0-9])(?=[[:alpha:]])", " ", x, perl = TRUE))
或使用捕获组
df1[-1] <- lapply(df1[-1], function(x) trimws(gsub("([[:alpha:]])", " \1", x)))
一个想法是使用 gsub
捕获两个组,然后在它们之间插入一个 space
dd[-1] <- lapply(dd[-1], function(i) gsub('([A-Za-z][0-9]+)([A-Za-z][0-9]+)', '\1 \2', i))
我有 4 列的数据框,我需要在每个列之后添加 space,这样值就会拆分。整个数据框有 8064 行。谢谢。
CustomerI V1 V2 V3
1 1231231231 l22I34 l22 l22
2 1231231233 l7 l7I19 l7
3 1231231234 l31 l7 l31
4 1231231235 l31l7 l7 l31l7
5 1231231236 l16 l22 l16
6 1231231237 l31 l31 l31
想要的结果
CustomerI V1 V2 V3
1 1231231231 l22 I34 l22 l22
2 1231231233 l7 l7 I19 l7
3 1231231234 l31 l7 l31
4 1231231235 l31 l7 l7 l31 l7
5 1231231236 l16 l22 l16
6 1231231237 l31 l31 l31
我们可以将 gsub
与正则表达式一起使用
df1[-1] <- lapply(df1[-1], function(x)
gsub("(?<=[0-9])(?=[[:alpha:]])", " ", x, perl = TRUE))
或使用捕获组
df1[-1] <- lapply(df1[-1], function(x) trimws(gsub("([[:alpha:]])", " \1", x)))
一个想法是使用 gsub
捕获两个组,然后在它们之间插入一个 space
dd[-1] <- lapply(dd[-1], function(i) gsub('([A-Za-z][0-9]+)([A-Za-z][0-9]+)', '\1 \2', i))