将变量分配给R中列的粘贴名称

问题描述 投票:0回答:1

我有一些带有名称的数据框:

MeanPlots1,MeanPlots2,MeanPlots3等。

我正在尝试编写一个for循环以在每个数据帧上执行一系列方程。

我正在尝试使用paste0函数。

我想让x成为每个数据集的一列。因此,代码应类似于以下代码行:

x <- Meanplots1$PAR

但是,由于我想将其放入for循环中,所以我要像这样格式化它:

for (i in 1:3){
   x <- paste0("Meanplots",i,"$PAR")
   Dmodel <- nls(y ~ ((a*x)/(b + x )) - c, data = dat, start = list(a=a,b=b,c=c))
}

这是将x分配给列表“ Meanplots1 $ PAR”而不是实际的列。关于如何解决此问题的任何想法?

r
1个回答
0
投票

我们可以用data.frame获得list中的所有mget

lst1 <- mget(ls(pattern = '^MeanPlots\\d+$'))

然后将listlapply循环并应用模型

DmodelLst <- lapply(lst1, function(dat) nls(y ~ ((a*x)/(b + x )) - c,
         data = dat, start = list(a=a,b=b,c=c)))
© www.soinside.com 2019 - 2024. All rights reserved.