gpt4 book ai didi

r - 在R中使用dplyr创建具有列表元素的数据框

转载 作者:行者123 更新时间:2023-12-04 16:57:35 26 4
gpt4 key购买 nike

这是我的数据框:

    df<-list(structure(list(Col1 = structure(1:6, .Label = c("A", "B", 
"C", "D", "E", "F"), class = "factor"), Col2 = structure(c(1L,
2L, 3L, 2L, 4L, 5L), .Label = c("B", "C", "D", "F", "G"), class = "factor")), class = "data.frame", row.names = c(NA,
-6L)), structure(list(Col1 = structure(c(1L, 4L, 5L, 6L, 2L,
3L), .Label = c("A", "E", "H", "M", "N", "P"), class = "factor"),
Col2 = structure(c(1L, 2L, 3L, 2L, 4L, 5L), .Label = c("B",
"C", "D", "F", "G"), class = "factor")), class = "data.frame", row.names = c(NA,
-6L)), structure(list(Col1 = structure(c(1L, 4L, 6L, 5L, 2L,
3L), .Label = c("A", "W", "H", "M", "T", "U"), class = "factor"),
Col2 = structure(c(1L, 2L, 3L, 2L, 4L, 5L), .Label = c("B",
"C", "D", "S", "G"), class = "factor")), class = "data.frame", row.names = c(NA,
-6L)))

我想将col1 = df[[1]][1]提取为数据框。然后,我要将此列表的第二个位置的col1合并到 df[[1]][1],那么我将有一个包含2列的数据框。
此后,我想将列表第三位置的列1合并到具有两列的数据框中,然后将有一个包含3列的数据框。

换句话说,我的数据框应具有3列,即列表中每个条目的所有第一列。

dplyr软件包可以帮助我做到这一点吗?

有什么帮助吗?

最佳答案

您可以使用lapply一口气提取名为"Col1的三列。然后设置结果的名称。

col1 <- as.data.frame(lapply(df, '[[', "Col1"))
names(col1) <- letters[seq_along(col1)]

col1
# a b c
#1 A A A
#2 B M M
#3 C N U
#4 D P T
#5 E E W
#6 F H H

选择您可能会发现更好的任何其他列名称。
dplyr的方式可能是
df %>% 
unlist(recursive = FALSE) %>%
as.data.frame %>%
select(., starts_with("Col1"))
# Col1 Col1.1 Col1.2
#1 A A A
#2 B M M
#3 C N U
#4 D P T
#5 E E W
#6 F H H

关于r - 在R中使用dplyr创建具有列表元素的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52411732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com