Как сохранить результаты функции внутри цикла в одном листе Excel? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть цикл for перечисление нескольких листов Excel, их чтение, некоторая обработка, и в идеале я хотел бы сохранить полученные результаты в одном файле / листе Excel.

желаемый результат - qs

files <- list.files(path = "V:/_190718AA_ascii", pattern = 
                      "*.xlsx", full.names = T)
df.list <- lapply(files, read_excel,col_names=FALSE)
kClusters=5
for (m in df.list) {

  qs[m]<- quantile(m[px[,,1,1]],probs=c(0,0.025,0.05,0.1,0.25,0.5,0.75,0.9,0.95,0.975,1))

  write.xlsx(qs[m],"V:/_ORG/080-DOZP/BO-P2/DOZPLL/Esma/uqs.xlsx",sheet=m)
  m <- m+1      
}

это дает только результат от одного метра вместо 4.

1 Ответ

0 голосов
/ 22 октября 2019

m - это не число в вашем цикле, а датафрейм. Кроме того, вам не нужно увеличивать его в цикле for.

Я предлагаю определить m как число, которое будет увеличиваться циклом for. Не уверен, что такое qs, поэтому я заменил его временной переменной (temp) для примера. Но я не смог проверить это, поскольку у меня нет доступа к вашим данным.

for (m in 1:length(df.list)) {

  temp<- quantile(df.list[[m]][px[,,1,1]],probs=c(0,0.025,0.05,0.1,0.25,0.5,0.75,0.9,0.95,0.975,1))

  write.xlsx(temp,"V:/_ORG/080-DOZP/BO-P2/DOZPLL/Esma/uqs.xlsx",sheet=m) 
}
...