gpt4 book ai didi

r - 如何将id变量添加到R中的多个数据集

转载 作者:行者123 更新时间:2023-12-01 09:29:40 25 4
gpt4 key购买 nike

使用 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))
}

这会导致错误:

Error in 1:nrow(i) : argument of length 0

我认为是什么导致了错误建议 here作者 Brian Diggs,他指出: i 是字符串;您想要具有在 i 中保存的名称的对象。那就是get()函数。

但是,我不确定如何将 get 函数应用于“数据集”的元素。另外我认为 lapply 在这里不合适,因为我想添加一个变量而不是输出列表,但也许我错了?

欢迎评论,

理查德

最佳答案

for (i in datasets)
{
d <- get(i)
d$sortid <- 1:nrow(d)
assign(i, d)
}

但真正的答案是将您的数据集包装在一个列表中:

dfs <- lapply(list(x.df, y.df), function(d) {
d$sortid <- 1:nrow(d)
d
})

关于r - 如何将id变量添加到R中的多个数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144597/

25 4 0
文章推荐: ruby-on-rails - Bootstrap glyphicons 没有显示 rails app--path 问题?
文章推荐: javascript - 如何使用 JavaScript 动态设置 `onSubmit`
文章推荐: scala - 在猫中实现 while(true)
文章推荐: moovweb - 在 Tritium 中,如何将所有

标签转换为

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com