【问题标题】:Iterate over R dataframe objects and add a column遍历 R 数据框对象并添加一列
【发布时间】:2021-05-31 05:51:53
【问题描述】:

我有许多数据框作为 R 对象,以前缀和数字命名。每个数据框的列名和编号与行名相同。

我正在尝试根据对象迭代添加一列。我正在尝试以下方法:

x <- 1
repeat{
get(paste0('prefix', x))$iteration <- x-1
x = x + 1
}

但是,我收到以下错误:

target of assignment expands to non-language object

您能否解释一下为什么这不起作用并提出解决方案?

谢谢。

【问题讨论】:

    标签: r dataframe loops object iteration


    【解决方案1】:

    获取以“前缀”开头的对象的值,后跟任何数字到list(“lst1”),然后使用Map通过从对象名称的数字部分减去1来创建一个新列('v1'),使用list2env来反映全局环境中原始对象的变化

    lst1 <- mget(ls(pattern = '^prefix\\d+$'))
    v1 <- as.numeric(sub("prefix", "", names(lst1))) -1
    lst1 <- Map(cbind, lst1, iteration = v1)
    list2env(lst1, .GlobalEnv)
    

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      相关资源
      最近更新 更多