将数据框中的 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 列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章