【问题标题】:How can I name objects in R according to a for loop?如何根据 for 循环命名 R 中的对象?
【发布时间】:2021-11-25 05:40:32
【问题描述】:

我想根据i 在循环中命名对象。我有 1996 年到 2020 年的数据集,都称为Natalidad i_p.csv,其中i 是年份。它们每个都有变量anomes。我想用这两个变量为每年创建一个矩阵,并将它们命名为matrix_i(其中i 是年份)。我已经尝试了带有和不带有 assign 函数的下一个代码,但它不起作用。

for (i in 1996:2020) { 
nacimientos <- read.csv(paste0("C:/Users/.../Natalidad ", i, "_p.csv"), header = TRUE, sep = ";")
assign(paste0("matrix", i), i) <- melt(table(nacimientos$ano, nacimientos$mes))
}

【问题讨论】:

    标签: r loops for-loop objectname


    【解决方案1】:

    我们可以使用names()[i]&lt;-"name" 为对象分配名称。 首先,创建一个要填充的输出对象。然后用你的循环填充它。

        output<-vector('list', length(1996:2020))
        for (i in as.character(1996:2020)) { 
        nacimientos <- read.csv(paste0("C:/Users/.../Natalidad ", i, "_p.csv"), header = TRUE, sep = ";")
        output[i]<-melt(table(nacimientos$ano, nacimientos$mes))
        names(output)[i]<-paste0("matrix_", i)
        }
    

    这将创建一个矩阵列表,其中每个元素都被命名为“matrix_i”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多