如何将相同的功能应用于列表R中所有电子表格的第一列?

时间:2020-01-08 15:30:45

标签: r

setwd("C:\\Users\\Documents\spreadsheet")
n <- dir(pattern = ".csv")
files<- NULL
for (i in n) {  files[[i]] <- read.csv(i,sep = ";",header = T) }
 #class(files)
[1] "list"

我将所有电子表格批量保存到列表中,如何将相同的功能应用于列表中所有电子表格的第一列?

library(forecast)
> map(files[,1],auto.arima)
Error in files[, 1] : incorrect number of dimensions

> lapply(files[,1],auto.arima)
Error in files[, 1] : incorrect number of dimensions

所有电子表格的默认列数均相同。

1 个答案:

答案 0 :(得分:1)

套用时,它会遍历文件的每个元素。您想在每个元素的第一列上应用一个函数:

lapply(files,function(i)auto.arima(i[,1]))

或者:

library(purrr)
files %>% map(function(i)auto.arima(i[,1]))

您可以将其进一步简化为(贷记为@Adam):

files %>% map(~ auto.arima(.[,1]))