搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 杂学小家 > R语言-循环(loop)线性模型

R语言-循环(loop)线性模型

杂学小家 2020-07-01

R语言-循环(loop)线性模型

    在生物信息或者神经科学领域的数据分析中, 因为需要比较案例(case)组与对照(control)组的多项变量(指标, 测量等), 因此编程时需要写循环去进行执行多次比较.

    正如在MATLAB中使用矩阵运算才是最优选择, 在R语言中许多重复计算应该善于利用apply/sapply/lapply等函数才是最高效的选择.

    下面利用一个实例进行分析. 数据为mydata, 数据格式有313个变量, 包括组别Groups, 年龄Age和性别Sex以及308个靶点变量. 现在的目的是比较组间的308个靶点变量, 同时控制年龄和性别. 以下分别使用循环和apply函数进行.

##使用循环构建5-313列变量的多元线性模型t <- proc.time() for (i in 5:313) { lms[[i-4]] = lm(mydata[,i] ~ Groups + Age + Sex, data = mydata) }proc.time() - t# 用户 系统 流逝# 0.90 0.02 1.5
##使用lapply函数构建5-313列变量的多元线性模型t <- proc.time() lms <- lapply(5:313, function(x) lm(mydata[,x] ~ Groups + Age + Sex,                                     data = mydata))proc.time() - t# 用户 系统 流逝# 0.76 0.00 1.01

    尽管从结果来看, 运行速度都是在1秒多, 但是对于更加大型的数据, 比如上千上万维的大样本数据, 这种方法的优越性会更加明显, 除此自外, 使用apply的代码更加简洁和易读.

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《R语言-循环(loop)线性模型》的版权归原作者「杂学小家」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注杂学小家微信公众号

杂学小家微信公众号:zaxuexiaojia

杂学小家

手机扫描上方二维码即可关注杂学小家微信公众号

杂学小家最新文章

精品公众号随机推荐