Use*_*100 2 regression 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)
Run Code Online (Sandbox Code Playgroud)
我想有一个循环使用lapply(最好)使用回归模型和...来分析带有MNR1的Time1,带有MNR2的Time2和带有MRN3的时间3。
我尝试了以下功能,但无法获得结果:
R <- lapply(1:ncol(df1), function(x) lm(Time[,x] ~ MNR[,x]))
Run Code Online (Sandbox Code Playgroud)
但这并没有给我每个小组的结果。我们可以使用lapply吗?
我们可以Map用来粘贴相应的列名,也可以reformulate通过分别传递“时间”和“ MNR”列名来创建公式Map
Map(function(x, y) lm(reformulate(y, x), data = df1),
names(df1)[1:3], names(df1)[4:6])
Run Code Online (Sandbox Code Playgroud)
或搭配 paste
Map(function(x, y) lm(paste(x, y, sep="~"), data = df1),
names(df1)[1:3], names(df1)[4:6])
Run Code Online (Sandbox Code Playgroud)
或使用 lapply
lapply(paste(names(df1)[1:3], "~", names(df1)[4:6]), function(x) lm(x, data = df1))
Run Code Online (Sandbox Code Playgroud)
或map2从purrr
library(purrr)
map2(names(df1)[1:3], names(df1)[4:6], ~ lm(reformulate(.y, .x), data = df1)
Run Code Online (Sandbox Code Playgroud)