У меня проблема, когда я импортировать CSV-файл с примерами строк R:
для импорта:
2010-07-27;91
2010-07-26;93
2010-07-23;88
Я использую оператор:
data <- read.csv2(file="...", sep=";", dec=".", header=FALSE)
, когда я пытаюсь агрегировать эти данные с другими, полученными в результате статистического анализа с использованием cbind
, дата отображается как целое число, потому что она была импортирована как множитель.
Если я попытаюсь показать ее как строку, используя as.character
, числовые данные также преобразуются в символы, поэтому их нельзя будет использовать для статистические процедуры.
Используйте аргумент colClasses
:
data <- read.csv2(file="...", sep=";", dec=".", header=FALSE,
colClasses=c("Date",NA))
NA
означает «действовать по умолчанию»
После импорта вы можете преобразовать фактор
в Дата
от
data[[1]] <- as.Date(data[[1]])
Возможно, вы хотите преобразовать значения символов в осмысленные значения времени. В этом случае объекты времени POSIXt являются хорошим выбором.
Учитывая ваш файл данных, я бы сделал что-то вроде этого.
data <- read.table(file="...", sep = ";", as.is = TRUE)
data[,1] <- strptime(data[,1], "%Y-%m-%d")
Поищите более подробную информацию о strptime в справке.
ПРИМЕЧАНИЕ. Если вы собираетесь указать все свойства файла, просто используйте read.table. Единственная цель всех остальных версий read.xxx — упростить выражение, поскольку установлены значения по умолчанию. Здесь вы использовали read.csv2, потому что по умолчанию он равен sep = ';'. Поэтому не указывайте его снова. Отсутствие необходимости указывать, что это единственная причина существования команды. Лично я использую только read.table, потому что никогда не могу вспомнить имена/значения по умолчанию для всех вариантов. В вашем случае это также самый короткий вызов, потому что он удовлетворяет вашим значениям по умолчанию для заголовка и dec.