【问题标题】:Create several data.frames via a for loop and name them accordingly通过 for 循环创建多个 data.frames 并相应地命名它们
【发布时间】:2014-04-04 13:25:46
【问题描述】:

我想对列表的每个元素(空气质量站的站代码)应用一个 for 循环,并为每个包含特定数据的站创建一个单独的 data.frame。

我当前的代码如下所示:

for (i in Stations))
{i_PM <- data.frame(PM2.5$DateTime,PM2.5$i)
colnames(i_PM)[1] <- "DateTime"
i_AOT <- subset(MOD2011, MOD2011$Station_ID==i)
i <- merge(i_PM, i_AOT, by="DateTime")}

Station 包含 28 个元素。结果应该是每个站的 data.frame,其中包含列 DateTime、PM2.5 和 MOD2011 中的几个元素。

我只是没有让它按应有的方式运行。我确定是我的错,我无法通过互联网找到具体的答案。 你能告诉我我的错误吗?

【问题讨论】:

  • 您的代码不可重现。

标签: r for-loop dataframe


【解决方案1】:

试试assign:

for (i in Stations)) {
    dat <- data.frame(PM2.5$DateTime,PM2.5$i)
    dat2 <- subset(MOD2011, MOD2011$Station_ID==i)
    colnames(i_PM)[1] <- "DateTime"
    assign(paste(i, "_PM", sep=""), dat)
    assign(paste(i, "_AOT", sep=""), dat2)
    assign(i, merge(dat, dat2, by="DateTime"))
}

但是请注意,这是一种不好的编码习惯。你应该重新考虑你的算法。例如,改用列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2016-11-28
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多