Как исправить ошибочное определение «i» в циклах for - PullRequest
1 голос
/ 02 мая 2019

У меня есть фрейм данных «data_all», представляющий собой список, содержащий 67 элементов. Для каждого элемента я вычисляю среднее значение первого столбца «EDA». Для этого я использую for-loop:

for (i in seq_along(data_all)) { 
  mean_all[i] <- print(round(mean(data_all[[i]][["EDA"]]), digits=3)) 
}

Проблема: В глобальной среде «i» определяется как «1L», одно значение вместо 67 значений. Значения: i = 1L

Я попытался удалить значение "i" с помощью rm (i) и снова загрузил коды. Я также закрыл и перезапустил программу и снова импортировал все данные. По какой-то причине «i» зарегистрирован как «1L», хотя мой список «data_all» содержит 67 элементов. В какой-то момент я смог выполнить расчеты, и код сработал. В следующий раз, когда я открыл программу, она больше не работала.

Я попытался погуглить проблему, но не смог найти никого с такими же проблемами.

Вот выдержки из моего r-кода:

Импортированные данные:

filenames <- list.files(pattern="*.dat", full.names=FALSE)
data_all <- lapply(filenames, function(x) read.delim(x, "", header = TRUE, sep = ";", quote = "\"", dec = ",", fill = TRUE))

For-loop:

for (i in seq_along(data_all)) { 
  mean_all[i] <- print(round(mean(data_all[[i]][["EDA"]]), digits=3)) 
}

Ошибка:

[1] 10,938 Ошибка: объект 'mean_all' не найден`

Я ожидал список из 67 элементов:

[1] 10.56
[1] 12.46
...
[1] 13.72

Вместо этого я получаю только один результат:

[1] 10.938

и поскольку «i» содержит только одно значение вместо 67, r не может сохранить вывод как новую переменную «mean_all [i]»

Буду признателен за помощь в решении этой проблемы. Я не против того, чтобы разобраться в этом сам, если бы я только знал, где искать помощь.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...