如何计算R中数据库的数据(如均值,中位数等)

时间:2015-12-14 07:40:56

标签: r postgresql

对于我的项目,我必须从数据库PostgreSQL计算R中的数据。但在R中我的数据无法计算,因为它被读作字符串。当我试图将其转换为数字或双倍。这是错误的。 这是我在R

中的代码
 > myTable<-"SELECT DISTINCT
+ round(avg(finalcall),2)
+ FROM kpidetail
+ where finalcall is not null AND priority like 'call'
+ group by agentname"
> data0<-dbGetQuery(con,myTable)
> data0
   round
1  91.56
2  88.72
3 100.00
4  70.00
5  95.00
> mean(data0)
[1] NA
Warning message:
In mean.default(data0) : argument is not numeric or logical: returning NA
> dataj<-as.numeric(data0)
Error: (list) object cannot be coerced to type 'double'
> mean(unlist(asnumeric(data0)))
Error in unlist(asnumeric(data0)) : could not find function "asnumeric"
> dataj<-unlist(as.double(data0))
Error in unlist(as.double(data0)) : 
  (list) object cannot be coerced to type 'double'
> dataj<-as.double(data0)
Error: (list) object cannot be coerced to type 'double'

我已经尝试了一切。但是,它根本不起作用。有什么帮助吗?谢谢你先进..

1 个答案:

答案 0 :(得分:2)

您对dbGetQuery()的调用似乎返回了一个列表,其中一个元素是SQL结果集中的列round。您可以从列表中访问此round列,然后获得所需的计算(例如,平均值):

mean(as.numeric(data0$round))