gpt4 book ai didi

r - 使用lapply中的特定列计算多个回归分析

转载 作者:行者123 更新时间:2023-12-04 12:17:08 24 4
gpt4 key购买 nike

这是我的数据:

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(最好)的循环,使用回归模型分析时间 1 和 MNR1,时间 2 和 MRN3,以及......

我试过下面的函数,但是没有得到结果:

R <- lapply(1:ncol(df1), function(x) lm(Time[,x] ~ MNR[,x]))

但它并没有给我每个组的结果。我们可以使用 lapply 来实现吗?

最佳答案

我们可以使用 Map 粘贴相应的列名,或者通过在 Map 中分别传递 'Times' 和 'MNR' 列名来使用 reformulate 创建公式

Map(function(x, y) lm(reformulate(y, x), data = df1),
names(df1)[1:3], names(df1)[4:6])

或者用粘贴

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))

或者使用 purrr 中的 map2

library(purrr)
map2(names(df1)[1:3], names(df1)[4:6], ~ lm(reformulate(.y, .x), data = df1)

关于r - 使用lapply中的特定列计算多个回归分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59117216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com