使用R中的Assign / Paste在R中动态命名

时间:2014-11-17 17:56:45

标签: r dynamic nested-loops paste assign

当我使用非动态名称时,事情按预期工作:

summary(date1fit <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))

当我尝试根据[[i]]命名拟合但是我得到错误说明&#34;找不到功能&#39;粘贴&lt; - &#39; &#34;或&#34;无法找到功能&#39;分配&lt; - &#39; &#34 ;.我尝试过以下方法:

summary(date.names[[i]] <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))
summary(paste(date.names[[i]]) <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))
summary(assign(date.names[[i]]) <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))
summary(assign(paste(date.names[[i]]), "", sep="")) <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))

任何人都可以帮我弄清楚我在哪里出错吗?我错过了什么?我需要嵌套循环吗?我正在使用的完整代码如下。

谢谢!

masterdf <- masterdf[order(as.Date(masterdf$date, format="%d/%m/%Y")),]

dates <- unique(masterdf$date)

masterdf.date <- list()
for(i in 1:length(dates))   {
masterdf.date[[i]] <- masterdf[masterdf$date==dates[i],]
                    }
date.names <- paste("date", dates, sep="")

summary(DYNAMIC NAME <- lm(masterdf.date[[1]]$LeastDiluteMPN~masterdf.date[[1]]$temp))

1 个答案:

答案 0 :(得分:2)

为什么要在汇总中进行分配?伊克。分两步完成:

> d=data.frame(x=1:10, y=runif(10))
> dmodel <- lm(y~x,data=d)
> summary(dmodel)

然后你可以有一个清单并执行:

d=list()
for(i in 1:10){
  d[[i]] = lm(....whatever...)
  summary(d[[i]])
}

如果你疯狂到想要“动态名字”,那么:

 crazyname = paste("mad",i)
 assign(crazyname, lm(y~x,data=d))
 summary(get(crazyname))