我有一个名为data6的data.frame,我想在其上执行数据透视。 我已经尝试了sqldf,但是在彻底检查后仍然找不到为什么出现此错误
“ result_create(conn @ ptr,语句)中的错误:靠近“(”:语法错误”
sql语句:“选择*来自(选择*来自data6)PIVOT(sum([Qty])FOR([con2],[con3],[con4],[Con15],[[ Con2],[Con3],[Con4])”
使用重播/广播功能可以完成,但是作为新用户,我不知道该怎么做。甚至我也不知道重播和dcast有什么区别。
我知道这是很多问题,但是如果有人帮助我
答案 0 :(得分:1)
默认情况下,$("[style]", "#idofstartdiv")
软件包使用SQLite作为基础数据库,因此您使用的sqldf
语法将不起作用。尽管您可以将基础数据库更改为SQL Server,但也可以只使用ANSI标准数据透视查询:
PIVOT
我不确定sql <- "SELECT \"Style Name\",
SUM(CASE WHEN GRNUOM = 'con2' THEN Qty ELSE 0 END) AS con2,
SUM(CASE WHEN GRNUOM = 'con3' THEN Qty ELSE 0 END) AS con3,
SUM(CASE WHEN GRNUOM = 'con4' THEN Qty ELSE 0 END) AS con4,
SUM(CASE WHEN GRNUOM = 'Con15' THEN Qty ELSE 0 END) AS Con15,
SUM(CASE WHEN GRNUOM = 'Con2' THEN Qty ELSE 0 END) AS Con2,
SUM(CASE WHEN GRNUOM = 'Con3' THEN Qty ELSE 0 END) AS Con3,
SUM(CASE WHEN GRNUOM = 'Con4' THEN Qty ELSE 0 END) AS Con4
FROM data6
GROUP BY \"Style Name\""
result <- sqldf(sql)
和con2
是否实际上会被识别为单独的列名。您可能必须将所有列名都放在双引号中,以使上述查询按您期望的方式工作。