首页 > 解决方案 > 使用列表中的第 n 个元素作为函数的输入

问题描述

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

我每天在邮件中收到三个不同的 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

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

标签: r

解决方案


它是 a list,所以我们需要[[提取list元素。[仍然listlength1 _

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

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

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

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

推荐阅读