2013-04-27 95 views
-5

这是我的数据框。在数据框中将1列拆分为2列

> 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 

我希望在这个问题上的任何帮助。非常感谢。

+4

所示没有尝试。 – 2013-04-27 05:59:18

+1

如果我谷歌你的标题,第二次命中导致strsplit,这是你以后,我想。 – 2013-04-27 06:41:59

+1

@RomanLuštrik,在这种情况下,我会认为“'read.csv'”就足够了:'read.csv(text = as.character(data $ Manufacturers),header = FALSE)'。不知道这是否比'strsplit'更有效率。 – A5C1D2H2I1M1N2O1R2T1 2013-04-27 10:09:51

回答

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")