我有一些数据帧作为R对象,以前缀和数字命名。每个数据框的列名和编号与行名相同。
我正在尝试添加基于对象迭代的列。我正在尝试以下操作:
x <- 1
repeat{
get(paste0('prefix', x))$iteration <- x-1
x = x + 1
}
但是,我得到以下错误:
target of assignment expands to non-language object
你能解释为什么这不起作用并提出解决方案吗?
谢谢。
获取以'prefix'开头的任意数字的对象的值到list
('lst1')中,然后使用Map
通过从对象名称的数字部分('v1')中减去1来创建一个新列,使用list2env
来反映全局环境中原始对象的变化
lst1 <- mget(ls(pattern = '^prefix\d+$'))
v1 <- as.numeric(sub("prefix", "", names(lst1))) -1
lst1 <- Map(cbind, lst1, iteration = v1)
list2env(lst1, .GlobalEnv)