从列表列表创建数据框

时间:2020-04-21 18:46:39

标签: r

我有一个包含81245个元素的列表。该列表的每个元素也是一个包含3-10个条目的列表。我现在想要一个具有81245 *(子列表中的数字元素)的新数据框。我拥有的当前代码非常慢,因为我使用循环是因为无法管理应用程序的运行。

我使用此代码创建的前两个元素:

x1 <- c("CCAAAAAT","GCAAAAAT","TCAAAAAT")
x2 <- c("CCAAAATT", "GCAAAATT", "TCAAAATT")
x3 <- c("CCAAAAGT", "GCAAAAGT", "TCAAAAGT")
x <- list(x1, x2, x3)
names(x) <- c("ACAAAAAT", "ACAAAATT", "ACAAAAGT")
x

y1 <- c("CAAATCAC","GAAATCAC","TAAATCAC")
y2 <- c("CAAATTAC", "GAAATTAC", "TAAATTAC")
y3 <- c("CAAATCAT", "GAAATCAT", "TAAATCAT")
y <- list(y1, y2, y3)
names(y) <- c("AAAATCAC", "AAAATTAC", "AAAATCAT")

z <- list(x,y)

我有另一个数据框,我从该数据框获得对应行的第一列。 数据框如下所示:

d <-data.frame(matrix(, nrow = length(z), ncol = 0))
d$TF[1] <- "TF1"
d$TF[2] <- "TF1"

最后,我希望数据框看起来像这样:

row <- 1
for (i in 1:length(z)){
  TF <- d$TF[[i]]
  names <- names(z[[i]])
  for (j in 1:length(z[[i]])){
    name <- names[[j]]
    neigh <- list(z[[i]][[j]])
    df$TF[[row]] <- TF
    df$Pos[[row]] <- name
    df$Neighbour[[row]] <- neigh
    row <- row + 1
  }
  print(i)
}

我现在该如何使用申请?我真的不知道如何在应用中使用其他数据框中的内容。

0 个答案:

没有答案