#r #csv #formatting
#r #csv #форматирование
Вопрос:
Во-первых, здесь действительно новичок в R.
У меня есть функция, предназначенная для оценки значений в столбцах, распределенных по многим таблицам. У меня есть аргумент в функции, который позволяет пользователю вводить, из какой последовательности таблиц они хотят извлекать данные. Функция, похоже, работает нормально, но когда пользователь вводит одно число (более 9) вместо последовательности с помощью оператора :, я нахожу сообщение об ошибке:
входные данные для этого примера — 30
Ошибка в файле (file, «rt»): не удается открыть соединение
5 файл (file, «rt»)
4 прочитайте.table(file = file, header = header, sep = sep, quote = quote, dec = dec, fill = fill, comment.char = comment.char, …)
3 FUN(«specdata/3e 01.csv»[[1L]], …)
2 lapply(пути к файлам, read.csv)
1 значение загрязнителя («specdata», «нитрат», 30)
Кроме того: предупреждающее сообщение:
В файле (file, «rt»): не удается открыть файл ‘specdata/3e 01.csv’: нет такого файла или каталога
Ниже приведен мой код:
pollutantmean <- function(directory, pollutant, id = 1:332){
filenames <- paste0(formatC(id, digits = 0, width = 3, flag = "0"), ".csv")
filepaths <- file.path(directory, filenames)
list_of_data_frames <- lapply(filepaths, read.csv)
big.df<-do.call(rbind,list_of_data_frames)
print(str(big.df))
mean(big.df[,pollutant], na.rm=TRUE)
}
Многие из вас, вероятно, признают это заданием coursera. Это вышло за рамки установленного срока, и я отправил для этого некоторый (довольно нехороший) код. Я просто хочу хорошо понимать, что здесь происходит, поскольку этот тип работы напрямую связан с моим исследованием.
Комментарии:
1. Я думаю, что это преобразует входные данные в научную нотацию, когда входные данные не являются последовательностью. Это будет головной болью, поскольку входные данные используются для индексации таблиц.
Ответ №1:
Вы хотите убедиться, что вы также форматируете свои значения как целые числа
formatC(id,digits=0, width=3, flag="0", format="d")
или вы могли бы использовать
sprintf("d", id)
внутри вашего оператора вставки. Оба из них должны препятствовать научной нотации.
Комментарии:
1. в дополнение к вышесказанному
options(scipen=999)
для подавления научной нотации2. format=»d» работает. Я сохраню параметры (scipen = 999) в своем наборе инструментов на будущее. $$$$