【发布时间】:2020-01-16 06:03:23
【问题描述】:
我在一个 excel 文件中有两个数据库,每个数据库都在一个单独的 Excel 表中,分别是 NOMINAL 和 REAL。然后我想使用循环将这些数据库上传到 R 中,如下所示:
library(readxl)
mylist <-list("NOMINAL", "REAL")
for (page in mylist) {
page <- read_excel("C:/Users/Cys/OneDrive/Documents/Database/BIS-MLTI-FX.xlsx", sheet = page)
}
当我运行这个循环时,我有最后一个名为“page”的数据库(REAL),因为分配不允许用提供的列表中的名称命名我的数据库。
我的问题是我应该如何编写这个循环以便将列表中的名称分配给我的数据库?
【问题讨论】:
-
不,请不要使用
assign,它的使用通常意味着为自己做更多的工作。这里还有另一个问题:您以page作为字符进行循环,然后将返回值分配给同一变量page(随后被丢弃)。这应该类似于out <- lapply(mylist, function(pg) read_excel("...", sheet=pg)),现在您在一个列表中有两个框架。 -
(之后,您可以执行
names(out) <- mylist之类的操作,以便out$REAL或out[["REAL"]]为您提供相应的表格。)
标签: r excel list loops variable-assignment