Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中透视表与在R中透视相同的数据帧_Sql_Sql Server_R_Rodbc - Fatal编程技术网

在SQL中透视表与在R中透视相同的数据帧

在SQL中透视表与在R中透视相同的数据帧,sql,sql-server,r,rodbc,Sql,Sql Server,R,Rodbc,我有一个大约3列60万行的大数据集。旋转后,它将转换为1000列和600行。 输入数据子集 Date Id Price 2014/12/03 Id1 100 2014/12/03 Id2 120 2014/12/03 Id3 110 2014/12/03 Id4 105 2014/12/02 Id1 150 2014/12/02 Id2 115 2014/12/02 Id3 140 2014/12/02

我有一个大约3列60万行的大数据集。旋转后,它将转换为1000列和600行。
输入数据子集

Date        Id      Price
2014/12/03  Id1     100
2014/12/03  Id2     120
2014/12/03  Id3     110
2014/12/03  Id4     105
2014/12/02  Id1     150
2014/12/02  Id2     115
2014/12/02  Id3     140
2014/12/02  Id4     135
2014/12/01  Id1     165
2014/12/01  Id2     155
2014/12/01  Id3     185
2014/12/01  Id4     195
2014/11/30  Id1     160
2014/11/30  Id2     170
2014/11/30  Id3     180
2014/11/30  Id4     190
数据透视后输出数据

Date        Id1     Id2     Id3     Id4
2014/12/03  100     120     110     105
2014/12/02  150     115     140     135
2014/12/01  165     155     185     195
2014/11/30  160     170     180     190
由于数据集很大,哪种性能更高效?
1.在SQL中透视并返回到R
2.将原始数据集返回到R并在R中执行透视


我正在使用RODBC从MSSQL服务器获取数据。对此有何建议?

我认为“性能效率”在您的案例中没有很好的定义。如果不知道您的机器的规格以及MSSQL运行环境的更多细节,就不可能知道哪一个更快

假设配置原始数据库的人知道他们在做什么,那么SQL环境的设置很可能比R更有效地处理操作


因此,假设所有内容都相对相等,在进入R之前进行此操作。

为什么不自己对操作进行基准测试?您可以通过使用Sort with DataView设置索引列来提高DataTable中的性能,这将提高数据检索的性能我刚刚复制了完整的数据集(600000行3列)和
dcast(df,Date~Id)
导致了四分之一秒的时间。从SQL server中获取数据怎么样?在SQL中旋转数据时,RODBC将获取600000个元素的数据,而在另一种情况下,它将获取1800000个元素的数据。这会有任何影响吗?这确实是一个好问题。我猜在SQL中,它不会比在R中花费太多时间,但数据集将我要小三倍。考虑到RODBC的效率不高,我绝对建议用SQL来实现