如何在R中分隔字符串和数值?
要分隔字符串和数值,我们可以使用strplit函数并通过传递所有类型的字符和所有数值来拆分值。例如,如果我们有一个名为df的数据框,其中包含一个字符列Var,它具有连接的字符串和数值,那么我们可以使用以下命令拆分它们-
strsplit(df$Var,split="(?<=[a-zA-Z])\\s*(?=[0-9])",perl=TRUE)
示例
考虑以下数据框-
x<-sample(c("india 123","china 232","sudan143","russia326 2"),20,replace=TRUE) df1<-data.frame(x) df1输出结果
x 1 sudan143 2 china 232 3 russia326 2 4 sudan143 5 sudan143 6 china 232 7 china 232 8 india 123 9 sudan143 10 china 232 11 india 123 12 russia326 2 13 sudan143 14 russia326 2 15 china 232 16 india 123 17 sudan143 18 india 123 19 china 232 20 china 232
在df1的x列中拆分字符串和数值-
示例
strsplit(df1$x,split="(?<=[a-zA-Z])\\s*(?=[0-9])",perl=TRUE)输出结果
[[1]] [1] "sudan" "143" [[2]] [1] "china" "232" [[3]] [1] "russia" "326 2" [[4]] [1] "sudan" "143" [[5]] [1] "sudan" "143" [[6]] [1] "china" "232" [[7]] [1] "china" "232" [[8]] [1] "india" "123" [[9]] [1] "sudan" "143" [[10]] [1] "china" "232" [[11]] [1] "india" "123" [[12]] [1] "russia" "326 2" [[13]] [1] "sudan" "143" [[14]] [1] "russia" "326 2" [[15]] [1] "china" "232" [[16]] [1] "india" "123" [[17]] [1] "sudan" "143" [[18]] [1] "india" "123" [[19]] [1] "china" "232" [[20]] [1] "china" "232"
示例
y<-sample(c("orange 12","banana247","guava 235","kiwi 138"),20,replace=TRUE) df2<-data.frame(y) df2输出结果
y 1 banana247 2 kiwi 138 3 banana247 4 orange 12 5 kiwi 138 6 kiwi 138 7 banana247 8 banana247 9 orange 12 10 guava 235 11 guava 235 12 banana247 13 guava 235 14 orange 12 15 banana247 16 kiwi 138 17 kiwi 138 18 banana247 19 banana247 20 orange 12
在df2的y列中拆分字符串和数值-
示例
strsplit(df2$y,split="(?<=[a-zA-Z])\\s*(?=[0-9])",perl=TRUE)输出结果
[[1]] [1] "banana" "247" [[2]] [1] "kiwi" "138" [[3]] [1] "banana" "247" [[4]] [1] "orange" "12" [[5]] [1] "kiwi" "138" [[6]] [1] "kiwi" "138" [[7]] [1] "banana" "247" [[8]] [1] "banana" "247" [[9]] [1] "orange" "12" [[10]] [1] "guava" "235" [[11]] [1] "guava" "235" [[12]] [1] "banana" "247" [[13]] [1] "guava" "235" [[14]] [1] "orange" "12" [[15]] [1] "banana" "247" [[16]] [1] "kiwi" "138" [[17]] [1] "kiwi" "138" [[18]] [1] "banana" "247" [[19]] [1] "banana" "247" [[20]] [1] "orange" "12"