我想重新組織我的數據,基本上是一個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