【发布时间】:2022-06-16 23:30:58
【问题描述】:
我正在尝试在 r 中 rbind 一系列数据帧。每个数据帧具有相同的基本结构。这是一个数据框的样子。
data1 <- data.frame (id = c (1000, 1001, 1002, 1003),
time = c(1, 1, 1, 1),
start = c(1/1/2020, 1/1/2020, 1/1/2020, 1/1/2020),
end = c (1/2/2020, 1/3/2020, 1/4/2020, 1/2/2020) )
我创建了一些代码来生成所有数据帧的列表。在我的项目中,数据帧的数量将根据具体任务而改变。用户将输入他们期望有多少帧。数据框列表将生成所有数据框的列表。
# listing of dataframes
# in this example, lets say we have 100 dataframes
numberofdataframes <- 1:100
# create a listing of all new frames
dataframelist <- paste0 ("data", numberofdataframes, sep = "", collapse = NULL)
dataframelist
我的计划是重新绑定我创建的这个数据框列表。
rbind (dataframelist )
这是我期望的输出。
id time start end
1000 1 1/1/2020 1/2/2020
1000 1 1/1/2020 1/3/2020
1000 1 1/1/2020 1/4/2020
1000 1 1/1/2020 1/2/2020
1000 2 2/1/2020 2/2/2020
1000 2 2/1/2020 2/2/2020
1000 2 2/1/2020 2/2/2020
1000 2 2/1/2020 2/2/2020
1000 3 3/1/2020 3/2/2020
1000 3 3/1/2020 3/2/2020
1000 3 3/1/2020 3/2/2020
1000 3 3/1/2020 3/2/2020
etc.
但是,当我运行代码时,我只得到一个数据帧列表的 rbind。
"data1"
"data2"
"data3"
etc.
我在网上查了一下,我尝试了几种不同的解决方案。一种方法是使用 do.call (Recombining a list of Data.frames into a single data frame)。这种方法给了我完全相同的错误。并尝试使用 do.call ,我得到了同样的错误。
其他解决方案推荐使用 rbindlist。当我使用 rbind list 时,我得到一个稍微不同的错误。
> rbindlist (dataframelist )
Error in rbindlist(dataframelist ) :
Item 1 of input is not a data.frame, data.table or list
我认为 r 不会将 dataframelist 中的项目解释为数据帧而是字符。使用 rbindlist 或 do.call 时,数据帧列表应该是什么样子。我认为这可能是问题所在?
【问题讨论】: