使用 R,我想向多个数据集添加一个计数器变量(id 变量)。例如,我有两个数据集 x.df 和 y.df:
x1 <- c(1,3,5,7)
x2 <- letters[1:4]
x.df <- as.data.frame(cbind(x1, x2))
y1 <- c(100,200,300,400,500)
y2 <- c(letters[22:26])
y.df <- as.data.frame(cbind(y1, y2))
对于这些数据集,我想添加一个 id 变量“id”:
datasets <- c("x.df","y.df")
for (i in datasets) {
i$sortid <- c(1:nrow(i))
}
这会导致错误:
1:nrow(i) 中的错误:长度为 0 的参数
我认为导致错误的原因是Brian Diggs在这里提出的,他指出: i 是一个字符串;您想要具有在 i 中保存的名称的对象。那就是 get() 函数。
但是,我不确定如何将 get 函数应用于“数据集”的元素。另外我认为 lapply 在这里不合适,因为我想添加一个变量而不是输出列表,但也许我错了?
任何意见表示赞赏,
理查德