r - 在 lapply 中使用特定列计算多个回归分析
问题描述
这是我的数据:
df1<-read.table(text=" Time1 Time2 Time3 MNR1 MNR2 MNR3
36 36 43 5 4 5
40 41 51 4 6 4
38 36 50 7 8 3
35 51 43 8 3 2
52 55 57 3 2 4
",header=TRUE)
我想使用 lapply (最好)使用回归模型分析 Time1 和 MNR1、Time2 和 MNR2 和 Time 3 和 MRN3 使用回归模型和 ....
我尝试了以下功能,但未能得到结果:
R <- lapply(1:ncol(df1), function(x) lm(Time[,x] ~ MNR[,x]))
但它并没有给我每组的结果。我们可以用 lapply 来做吗?
解决方案
我们可以使用Map
粘贴相应的列名或reformulate
通过分别传递“Times”和“MNR”列名来创建公式Map
Map(function(x, y) lm(reformulate(y, x), data = df1),
names(df1)[1:3], names(df1)[4:6])
或与paste
Map(function(x, y) lm(paste(x, y, sep="~"), data = df1),
names(df1)[1:3], names(df1)[4:6])
或使用lapply
lapply(paste(names(df1)[1:3], "~", names(df1)[4:6]), function(x) lm(x, data = df1))
或map2
从purrr
library(purrr)
map2(names(df1)[1:3], names(df1)[4:6], ~ lm(reformulate(.y, .x), data = df1)
推荐阅读
- python - 使 ZipFile 将反斜杠写入文件名
- image - Flutter/Dart 以相同格式重写图像
- svelte - Svelte 中未显示自定义 Google 登录按钮
- python - 错误:在python中找不到索引错误返回
- java - equiJoin 对象集合的有效方法
- python - AutoML Vision 元数据问题
- mysql - 字符编码问题 node.js mysql
- python - 我想在烧瓶中使用 shell 命令
- amazon-web-services - serverless create_domain - 无法创建自定义域
- javascript - 具有递归功能的轮播