camelbbs 2009年12月11日发布 #1 2009年12月11日星期五 14点10分 我有120000行数据,用perl写成12万行R命令做t.test,然后执行,大概几分钟就算完了。 如果只用R语言,把所有数据先读入,然后用循环,每一行做t.test,花了几个小时,到现在还没有算完。 这说明一个问题,在R里执行单行命令要比用循环快,涉及到循环的问题,最好写成单行命令执行。
ryusukekenji 2009年12月12日发布 #5 2009年12月12日星期六 15点58分 我也遇到一样的问题啊,运算1个小时,好头痛哦!!![s:15] [quote]引用第1楼jah_et于2009-12-12 11:42发表的 : 有apply吧... [/quote] 请问apply 可以运行循环计算吗? [quote]引用第2楼qxde01于2009-12-12 11:59发表的 : 矩阵比数据框快 按列读取比按行读取快 [/quote] 原来是这样啊?! [quote]引用第3楼鱼蛋于2009-12-12 17:12发表的 : R的一个优势就是矩阵运算,不要用循环亵渎了…… [/quote] 矩阵可以解决循环计算的问题吗?
Ihavenothing2009年12月13日发布 #6 2009年12月13日星期日 05点37分 如果你的循环比较有规律,比如是针对矩阵的行或列做运算,那么大都可以用apply()系列的函数来实现。
yihui2009年12月14日发布 #7 2009年12月14日星期一 08点55分 简单在主站写了写:http://cos.name/2009/12/improve-r-computation-efficiency/
ryusukekenji 2009年12月14日发布 #8 2009年12月14日星期一 16点08分 [quote]引用第6楼谢益辉于2009-12-14 16:55发表的 : 简单在主站写了写:http://cos.name/2009/12/improve-r-computation-efficiency/ [/quote] 刚看完谢老师的文章,原来Apply也可以这么用的。虽然不完全明白,但是学生会继续学习~ ^_^ (谢老师连节省的时间都计算出来直接对比,好佩服哇!!!)
camelbbs 2009年12月14日发布 #9 2009年12月14日星期一 16点09分 [quote]引用第6楼谢益辉于2009-12-14 16:55发表的 : 简单在主站写了写:http://cos.name/2009/12/improve-r-computation-efficiency/ [/quote] 版主总结的不错,受教了
camelbbs 我有120000行数据,用perl写成12万行R命令做t.test,然后执行,大概几分钟就算完了。 如果只用R语言,把所有数据先读入,然后用循环,每一行做t.test,花了几个小时,到现在还没有算完。 这说明一个问题,在R里执行单行命令要比用循环快,涉及到循环的问题,最好写成单行命令执行。
ryusukekenji 我也遇到一样的问题啊,运算1个小时,好头痛哦!!![s:15] [quote]引用第1楼jah_et于2009-12-12 11:42发表的 : 有apply吧... [/quote] 请问apply 可以运行循环计算吗? [quote]引用第2楼qxde01于2009-12-12 11:59发表的 : 矩阵比数据框快 按列读取比按行读取快 [/quote] 原来是这样啊?! [quote]引用第3楼鱼蛋于2009-12-12 17:12发表的 : R的一个优势就是矩阵运算,不要用循环亵渎了…… [/quote] 矩阵可以解决循环计算的问题吗?
ryusukekenji [quote]引用第6楼谢益辉于2009-12-14 16:55发表的 : 简单在主站写了写:http://cos.name/2009/12/improve-r-computation-efficiency/ [/quote] 刚看完谢老师的文章,原来Apply也可以这么用的。虽然不完全明白,但是学生会继续学习~ ^_^ (谢老师连节省的时间都计算出来直接对比,好佩服哇!!!)
camelbbs [quote]引用第6楼谢益辉于2009-12-14 16:55发表的 : 简单在主站写了写:http://cos.name/2009/12/improve-r-computation-efficiency/ [/quote] 版主总结的不错,受教了