Я добавил пробелы вокруг полей в CSV-файле в плагине Vim csv.vim.
Теперь у меня возникают трудности с объявлением классов столбцов как числовых ( num
и т. Д.).
Наличие отрицательных значений также вызывает проблемы в следующих столбцах
Данные могут иметь пустые поля.
Data data.csv
Test, test2, test3
, 1 , 1
10.8, -1 , 1
1.1 , 2 , 2
Код
library('methods')
DF <- read.csv("/home/masi/Data/data.csv", header = T, sep = ",", colClasses=c('num','num'))
DF
Выход
Error in methods::as(data[[i]], colClasses[i]) :
no method or default for coercing “character” to “num”
Calls: read.csv -> read.table -> <Anonymous>
Execution halted
colClasses = c ('num', 'num')
. NA
из-за одного знака минус ( -1
) во втором столбце. R: 3.3.3
AFAIK num
не является допустимым атомным векторным классом в R
:
Возможные значения: NA (по умолчанию , когда используется type.convert), "NULL" (когда столбец пропущен), один из классов атомарных векторов (логический, целочисленный, числовой, комплексный, символьный, необработанный) или "коэффициент", «Дата» или «POSIXct». В противном случае должен быть метод as (из методы пакета) для преобразования из «символа» в указанный формальный класс.
Ваш код должен работать, если вы замените его на числовой
:
> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('num','num'))Error in methods::as(data[[i]], colClasses[i]) :
no method or default for coercing “character” to “num”
, тогда как
> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('numeric','numeric'))
>
> DF
Test test2 test3
1 NA 1 1
2 10.8 -1 1
3 1.1 2 2
>