gpt4 book ai didi

R: dplyr::bind_rows() 在列表上操作?

转载 作者:行者123 更新时间:2023-12-04 12:18:46 25 4
gpt4 key购买 nike

我的理解是 dplyr::bind_rows() 仅对数据帧进行操作。为什么下面两个是相同的?

# Load pkgs, set seed
library(dplyr)
set.seed(1)

# Create toy data
foo <- list(df1 = data.frame(A = rnorm(3), B = rnorm(3)),
df2 = data.frame(C = rnorm(3), B = rnorm(3)),
df3 = data.frame(C = rnorm(3), A = rnorm(3)))

df1 <- bind_rows(foo)


# Combine all sources into 1 source
for (i in 1:(length(foo) - 1)){
foo[[i+1]] <- dplyr::bind_rows(foo[[i]], foo[[i+1]])
}

# Extract final df from list
df2 <- foo[[length(foo)]]

# Check for identical
identical(df1, df2)

最佳答案

根据 https://rdrr.io/cran/dplyr/man/bind.html

“每个参数可以是一个数据框、一个可以是一个数据框的列表或一个数据框列表。”

bind_rows(foo)

传递“数据框列表”。

尽管
bind_rows(foo[[i]], foo[[i+1]])

传递数据帧。

顺便说一句,你不能通过 rbind数据框列表,这就是您必须使用的原因
do.call(rbind, foo)

关于R: dplyr::bind_rows() 在列表上操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764663/

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