使用列表中的第n个元素作为函数的输入

时间:2018-08-29 22:18:15

标签: r

  

TLDR :如何从列表中获取 nth 元素以将其用作函数的输入。

我每天在邮件中收到三个不同的excel文件:Ayyyymmdd.xlsByyyymmdd.xlsCyyyymmdd.xls(文件名每天都会更改;“ yyyy ”是年份,“ mm ”是月,“ dd ”是日)。

我需要在R中读取这些文件。为此,我创建了一个列表,该列表根据今天的日期而变化。今天,该列表如下所示:

files <- as.list(c("A20180829.xls", "B20180829.xls", "C20180829.xls")

我现在需要分别读取所有三个文件(使用lapply可以,但是我一次只想引用一个元素)。不幸的是,以下命令不起作用:

Atoday <- read.xls(files[1], sheet = 1)            # Doesn't work
Atoday <- read.xls("A20180829.xls", sheet = 1)     # Works

我主要关心的是如何从列表中获取 nth 元素以将其用作函数的输入。该函数不必是read.xls,就我而言,它可以是read.csv()fread()等。

1 个答案:

答案 0 :(得分:2)

它是一个list,因此我们需要[[来提取list元素。 [仍然是list 1的length

read.xls(files[[1]], sheet = 1)

我们可以使用str或通过在控制台中键入差异来找到差异

files[1]
#[[1]]
#[1] "A20180829.xls"

files[[1]]
#[1] "A20180829.xls"