对于我的项目,我必须从数据库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'
我已经尝试了一切。但是,它根本不起作用。有什么帮助吗?谢谢你先进..
答案 0 :(得分:2)
您对dbGetQuery()
的调用似乎返回了一个列表,其中一个元素是SQL结果集中的列round
。您可以从列表中访问此round
列,然后获得所需的计算(例如,平均值):
mean(as.numeric(data0$round))