RMySQL: преобразование извлеченных данных

Я пытаюсь извлечь числовые данные из базы данных, где столбцы установлены как VARCHAR(100). Все данные в соответствующих столбцах являются числовыми, поэтому не должно возникнуть проблем с извлечением данных, отформатированных как целое число. Есть ли хороший способ сделать это в R?

Вот что я получил:

m_df <- dbGetQuery(conn, paste("SELECT ", direc, " as Position, ", power, " as Power FROM ", table, 
                     " d LEFT JOIN files f on f.id=d.fileid WHERE parc='", parc, 
                     "' AND timestamp >= '", w_date[1], "' and timestamp <= '", w_date[2], 
                     "' AND plantnumber = ", w_mach, sep=""))

Выполнение следующего:

sum(m_df$Power)

Выдает эту ошибку:

Error in sum(m_df$Power) : invalid 'type' (character) of argument

Выполнение:

str(m_df)

Генерирует:

 'data.frame':   4317 obs. of  2 variables:
 $ Position: chr  "280" "281" "288" "294" ...
 $ Power   : chr  "294" "342" "324" "284" ...

person klonq    schedule 21.07.2011    source источник


Ответы (1)


Вы пытаетесь суммировать некоторые символы, а R говорит: «ЧААААА?». Следующий небольшой фрагмент воспроизводит вашу ошибку.

(x.char <- sum(c("1", "2", "3")))
 Error in sum(c("1", "2", "3")) : invalid 'type' (character) of argument
(sum(as.numeric(x.char)))
 [1] 6

Запустите функцию as.numeric в вашем data.frame, и все готово.

person Roman Luštrik    schedule 21.07.2011