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
所有电子表格的默认列数均相同。
答案 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]))