c*****a 发帖数: 808 | 1 想问一下大牛,怎么在windows compile C code. 我想在R里面调来用,不会弄。我看
那个help文件迷惑了。
我机器有visual c++。能不能用cgywin模拟啊
感谢了 |
r********0 发帖数: 65 | 2 得下个gcc,然后生成.dll。如果R在windows下面跑得话,好像不能cgywin。如果实在
cgywin里直接调用R好像可以的 |
c*****a 发帖数: 808 | 3 刚才搞了一阵,可以compile了,在user environment下调了一下路径。直接在cmd
compile了。话说用c的loop真快。。。 |
r********0 发帖数: 65 | 4
没错,R里就尽量不用for都用lapply啥的代替
【在 c*****a 的大作中提到】 : 刚才搞了一阵,可以compile了,在user environment下调了一下路径。直接在cmd : compile了。话说用c的loop真快。。。
|
c*****a 发帖数: 808 | 5 以前我上课听一个stat computation的老师,经常在吹R的vectorization, how
awesome vector operations in R. 他也是叫我们少用for loop,多用sapply, lapply
什么的.
如果2个for loop在一起用算大点点的samplesize,等半天啊 |
t****a 发帖数: 1212 | 6 虽然不会你的问题,也进来凑凑热闹谈谈apply。
sapply, lapply的速度和for实际是一样的(惊讶吧?我曾经做过比较,至少R 2.5.1之
前是没本质差别的。)。
提高R计算速度的办法是多使用矢量运算,矩阵运算。
虽然sapply并不提高速度,它还是值得推荐的。sapply用的是functional programming
的概念,这样写的code容易使用snow package等轻易实现并行化。另外程序的可读性也
比for要好。 |
r********0 发帖数: 65 | 7 apply什么的对vector list matrix很好用。
但凡能用这些运算的就很能容易进行并行。实在不是还用foreach可以用。
现在天天想着做并行啊。
貌似我用lapply还是比for能快一些 |
s*****n 发帖数: 2174 | 8 单纯从looping本身, lapply()的确和for()没有本质差别。
不过写for loop难免要生成很多不必要的变量和步骤, 于是造成程序不efficient。
lapply是批量处理, 避免了单独定义很多不必要的变量。
programming
【在 t****a 的大作中提到】 : 虽然不会你的问题,也进来凑凑热闹谈谈apply。 : sapply, lapply的速度和for实际是一样的(惊讶吧?我曾经做过比较,至少R 2.5.1之 : 前是没本质差别的。)。 : 提高R计算速度的办法是多使用矢量运算,矩阵运算。 : 虽然sapply并不提高速度,它还是值得推荐的。sapply用的是functional programming : 的概念,这样写的code容易使用snow package等轻易实现并行化。另外程序的可读性也 : 比for要好。
|
t****a 发帖数: 1212 | 9 Hadley Wickham的plyr包是apply以及aggregate系列函数在高维度数据上的延伸。它的
语法更加elegant,同时它可以使用foreach和DoMC包轻易的实现并行计算。plyr很值得
推荐。 |