我想重新组织我的数据,基本上是一个data.frames列表。 其元素代表感兴趣的主题(A和B),在两次(1和2)中收集对x和y的观察。 我想使这个列表包含涉及主题的data.frames,其中收集x和y的信息将作为新变量存储在相应的data.frames中,而不是元素名称:在R中,根据元素名称(rbind和指示符变量)重组列表
library('rlist')
A1 <- data.frame(x=sample(1:100,2),y=sample(1:100,2))
A2 <- data.frame(x=sample(1:100,2),y=sample(1:100,2))
B1 <- data.frame(x=sample(1:100,2),y=sample(1:100,2))
B2 <- data.frame(x=sample(1:100,2),y=sample(1:100,2))
list <- list(A1=A1,A2=A2,B1=B1,B2=B2)
A <- do.call(rbind,list.match(list,"A"))
B <- do.call(rbind,list.match(list,"B"))
list <- list(A=A,B=B)
list <- lapply(list,function(x) {
y <- data.frame(x)
y$class <- c(rep.int(1,2),rep.int(2,2))
return(y)
})
> list
$A
x y class
A1.1 66 96 1
A1.2 76 58 1
A2.1 50 93 2
A2.2 57 12 2
$B
x y class
B1.1 58 56 1
B1.2 69 15 1
B2.1 77 77 2
B2.2 9 9 2
在我的现实世界的问题中,有大约500个科目,并不总是两次,不同数量的观察。
所以我上面的示例只是为了说明我想要获取的位置,并且我坚持如何传递给do.call-rbind,它应该基于元素名称将特定于主体的元素绑定为新列表元素放在一起,同时分配一个新的变量。
对我来说,这是一个有点模糊的任务,最接近我得到的是rlist
包。 This问题是相关的,但使用unique
来识别元素,而在我的情况下,它似乎更多的正则表达式问题。
我很乐意甚至如何使用谷歌,任何关键字进行进一步的研究等
如果您提供了一些真实的数据框名称,有人试图帮助您可以为您编写更准确的正则表达式。 –
我认为在更抽象的层面上留下正则表达式问题会让我的问题变得混乱。当然,stackoverflow再次证明对周围的人有帮助。我会在下面处理你的答案,并回来:) – leokrkr