簡體   English   中英

將列表放入 R 的單個數據框中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM