将1列拆分为数据框中的2列

时间:2013-04-27 05:56:20

标签: r split strsplit

这是我的数据框。

    > data
       Manufacturers  
1   Audi,RS5  
2   BMW,M3  
3   Cadillac,CTS-V  
4   Lexus,ISF

所以我想分割制造商和模型,像这样,

    > data
    Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF

我很感激这个问题的任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:6)

一些示例数据。您可以使用字符向量,但我将使用数据框来匹配您的示例:

df <- data.frame(Manufacturers = c("Ducati,Diavel", "Honda,Goldwing",
                                   "BMW,R1200GS", "Harley-Davidson,Fat Boy"),
                 stringsAsFactors = FALSE)

使用strsplit()分隔字符串。请注意,它需要一个字符(不是因子)向量。 Strsplit()返回一个列表对象:

list <- strsplit(df$Manufacturers, ",")

将列表转换为数据框并设置适当的列名:

library("plyr")
df <- ldply(list)
colnames(df) <- c("Manufacturer", "Model")