【发布时间】:2019-11-21 06:35:49
【问题描述】:
我有一个由 22 个数据框组成的列表,每个数据框都是来自 excel 文件的工作表。每个 DF 都包含我使用 read_excel 函数加载到 R 中的特定城市财务详细信息。有几个城市有两个分支机构,因此我需要合并这两个城市。如何在 R 中执行此操作。
可重现的脚本:
> bng1 <- data.frame(parameters = c('cost','emp_count','revenue'), values = c(125,50,200))
> chn <- data.frame(parameters = c('cost','emp_count','revenue'), values = c(100,45,180))
> bng2 <- data.frame(parameters = c('cost','emp_count','revenue'), values = c(25,10,100))
>
> mylist <- list(bng1,chn,bng2) #I got my list by creating a function using lapply and read_excel to read data into R
> mylist
[[1]]
parameters values
1 cost 125
2 emp_count 50
3 revenue 200
[[2]]
parameters values
1 cost 100
2 emp_count 45
3 revenue 180
[[3]]
parameters values
1 cost 25
2 emp_count 10
3 revenue 100
我需要结合 bng1 和 bng2 的详细信息,然后我将得到一个包含两个 DF 的列表:chn 和 bng1 or(2)。
预期输出:
mylist
[[1]]
parameters values
1 cost 150
2 emp_count 60
3 revenue 300
[[2]]
parameters values
1 cost 100
2 emp_count 45
3 revenue 180
我使用 lapply 来添加或减去列表中每个元素的特定行/列等
lapply(list, function(x) x[a,] +/- x[b,])
但我不知道如何在一个列表中合并不同的元素。有人可以告诉我如何执行相同的操作。
【问题讨论】:
-
你知道
bng1和bng2将成为mylist中的第一个和第三个元素吗?它没有名字。 -
是的,我知道这些名字。当我从 excel 文件中读取数据时,我已经用相应的 excel 工作表名称命名了元素,这些名称是城市名称。