【问题标题】:Creating dynamically named variables in a for loop in R and assign value of zero to all new variables在 R 的 for 循环中创建动态命名的变量并将零值分配给所有新变量
【发布时间】:2019-11-10 16:38:52
【问题描述】:

我正在尝试使用 for 循环创建一组动态命名的新变量,并为每个变量分配零值。

我不确定为什么下面的代码不起作用。

weather <- data.frame("TAVG" = 51:52, "Location" = c("USA", "Canada"))

for (i in 30:60) {
  weather <- mutate(weather, paste0("hdd", i) = 0)
}

我非常感谢任何有关如何使其工作的建议或想法。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    这与dplyr 中的引用 有关。以下应该可以工作。

    for (i in 30:60) {
      weather <- mutate(weather, !!paste0("hdd", i) := 0)
    }
    

    请注意,使用 base R 可能更容易做到这一点。

    for (i in 30:60) {
      weather[paste0("hdd", i)] <- 0
    }
    

    或者干脆放弃循环。

    weather[paste0("hdd", 30:60)] <- 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多