将数据框中的 1 列拆分为 2 列 [重复]

Posted

技术标签:

【中文标题】将数据框中的 1 列拆分为 2 列 [重复]【英文标题】:Split 1 Column into 2 Columns in a Dataframe [duplicate] 【发布时间】:2013-04-21 08:39:59 【问题描述】:

这是我的数据框。

    > 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

我将不胜感激有关此问题的任何帮助。非常感谢。

【问题讨论】:

如果我用谷歌搜索你的标题,第二次点击会导致 strsplit,我想这就是你所追求的。 @RomanLuštrik,在这种情况下,我认为“read.csv”就足够了:read.csv(text = as.character(data$Manufacturers), header = FALSE)。不知道这是否比strsplit 更有效。 这也可以:library(qdap); colsplit2df(data,, c("Manufacturer", "Model"), ",") 【参考方案1】:

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

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

【讨论】:

以上是关于将数据框中的 1 列拆分为 2 列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在数据框中的分隔符处拆分列[重复]

将数据框中的结构类型列拆分为多列

将字符串(或字符串列表)拆分为 spark 数据框中的各个列

将列表的列拆分为同一 PySpark 数据框中的多列

将数据框中的两个混乱向量拆分为一个公共列

将数据框中的因子列转换为数字类型列[重复]