[英]Putting lists in a single data frame in R
假設我們有以下名為data2
的數據集。
id v1 v2
1 5 0.5
1 4 0.5
1 6 0.5
2 2 0.2
2 3 0.2
2 7 0.2
2 8 0.2
以下代碼:
library(doParallel)
un_id <- unique(data2$id)
out <- vector('list', length(un_id))
names(out) <- un_id
registerDoParallel(cl <- makeCluster(length(un_id)))
for(id1 in un_id) {
subdat <- subset(data2, id == id1)
out[[id1]] <- foreach(i = nrow(subdat)) %dopar% {
a <- matrix(nrow = nrow(subdat), ncol=2)
for (j in 1:nrow(subdat)) {
for (k in 1:2) {
a[j,k] <- j*k
}
}
a
}
}
stopCluster(cl)
產生兩個lists
:
$`1`
$`1`[[1]]
[,1] [,2]
[1,] 1 2
[2,] 2 4
[3,] 3 6
[4,] 4 8
$`2`
$`2`[[1]]
[,1] [,2]
[1,] 1 2
[2,] 2 4
[3,] 3 6
[4,] 4 8
我如何將它組合成一個數據框? 謝謝!
如果不使用 cbind 或 bind_cols,則假設您要按行綁定,則這些中的任何一個都應該起作用。 不幸的是,您的示例不容易重現。
df <- do.call("rbind", yourdata)
or:
library(dplyr)
df <- bind_rows(yourdata)
編輯
我不確定這是兩個單獨的列表還是兩個數據框的列表,如果它的兩個列表您可以將它們組合如下,然后使用上面的
lists <- do.call(c, list(list1, list2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.