RMySQL:转换提取的数据

时间:2011-07-21 09:14:51

标签: r 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" ...

1 个答案:

答案 0 :(得分:3)

你想要总结一些角色而R正在说“WHAAAA?”。下面的小片段再现了您的错误。

(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

在您的data.frame上运行as.numeric函数,您就可以了。

相关问题