Как я могу сохранить вывод из моей функции? - PullRequest
0 голосов
/ 28 апреля 2020

Я застрял прямо сейчас. Мне нужно найти корреляции некоторых файлов, и я не знаю, как сохранить свои результаты. Должна быть какая-то очень маленькая проблема, которую я сейчас не вижу.

correl<-function(prah=0){
      for (i in dir()) {
        list<-read.csv(i)
        subset<-(list[(!is.na(list$sulfate & list$nitrate)),])
        correlation<-cor(subset$sulfate,subset$nitrate)
        rows<-nrow(subset)
        results<-if(prah<=rows){correlation}else if(prah>rows){NULL}
      }
      return(results)
    }
    x<-correl(prah=0)

Сама функция работает довольно хорошо. Я могу рассчитать корреляцию по мере необходимости, но сохранить ее невозможно. Результат должен выглядеть примерно так.

> cr<-correl(prah=150)
> head(cr)
[1] -0.01895754 -0.14051254 -0.04389737 -0.06815956 -0.12350667 -0.07588814

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 28 апреля 2020

Если вы хотите сохранить вывод, вы должны поместить result снаружи for l oop и внизу тела вашей функции, например,

correl<-function(prah=0){
  results <- list()
  for (i in dir()) {
    list<-read.csv(i)
    subset<-(seznam[(!is.na(list$sulfate & list$nitrate)),])
    correlation<-cor(subset$sulfate,subset$nitrate)
    rows<-nrow(subset)
    if(prah<=rows) {
      results[[length(results)+1]]<-correlation
    }
    else {
      results[[length(results)+1]] <- NULL}
  }
  return(results)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...