gpt4 book ai didi

r - 基于拆分和列的规范化( reshape )数据框

转载 作者:行者123 更新时间:2023-11-30 23:55:46 25 4
gpt4 key购买 nike

我有一个包含

df 
Date name score
12/09/2012 Mahesh\nRahul 120
13/09/2012 abc\nxyz\nrep 110
...........................
我已经尝试过这个以获得原子
name1=str_split(df[,2],"\n")
但不知道如何再次关联,使数据框标准化的最佳方法是什么,以便我可以得到
 df 
Date name score
12/09/2012 Mahesh 120
12/09/2012 Rahul 120
13/09/2012 abc 110
13/09/2012 xyz 110
13/09/2012 rep 110
...........................
任何有助于在 R 中规范化长数据帧的任何帮助。
编辑
请注意,这只是一个可重复的示例,我的 中有多个名称姓名 列和名称的数量从一行到另一行不同。谢谢。
dput(df) structure(list(Date = structure(1:2, .Label = c("12/09/2012", "13/09/2012 "), class = "factor"), name = structure(c(2L, 1L), .Label = c("abc\nxyz", "Mahesh\nRahul"), class = "factor"), score = structure(c(2L, 1L), .Label = c("110", "120"), class = "factor")), .Names = c("Date", "name", "score"), row.names = c(NA, -2L), class = "data.frame")

最佳答案

这是一个 R 基础解决方案
更新

> Names <- strsplit(df$name, "\n")
> n <- sapply(Names, length)
> data.frame(cbind(apply(df[,-2], 2, function(x) rep(x, n)),
name=unlist(Names)), row.names = NULL)[,c(1,3,2)]
Date name score
1 12/09/2012 Mahesh 120
2 12/09/2012 Rahul 120
3 13/09/2012 abc 110
4 13/09/2012 xyz 110
5 13/09/2012 rep 110
哪里 df是:
> dput(df)
structure(list(Date = c("12/09/2012", "13/09/2012"), name = c("Mahesh\nRahul",
"abc\nxyz\nrep"), score = c(120, 110)), .Names = c("Date", "name",
"score"), row.names = c(NA, -2L), class = "data.frame")

关于r - 基于拆分和列的规范化( reshape )数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com