如何使用循环将同一列追加到多个数据帧中?

我真的希望有人能帮助我.我有40个Excel文件的数据。当 “读取 “这些文件以将它们作为数据框架带入R中时,我必须将它们命名为 “client “和一个数字(如client1,client2等),并可能在每个文件中添加一列值,这些值来自于我在R中已有的一个列表,称为p,在数据框架中应命名为Pasqua。

for (e in seq(1:40)){
    assign(paste0("client",e),read_excel(paste("C:/Users/Windows 10/Desktop/DS/",e,".xlsx",sep=""),
col_types = c("skip", "numeric", "skip", "numeric", "skip", "skip", "skip","skip", "skip")))}

这样就可以了,然后我就有了40个数据帧,如愿以偿。

但如果我尝试在循环中插入代码来追加列,我就会面临几个错误:我试着用这种方式

paste0("client",e,"[,Pasqua]")<-p

我有错误 target of assignment expands to non-language object 因为R似乎不能处理赋值,变量名是这样 “建立 “的。

那么也就

df[,"Pasqua"]<-p

我有这个错误 object of type 'closure' is not subsettable

在这里搜索其他用户的帖子,我明白一个方法可以使用lapply(),但我还没有找到一个方法来正确使用它.有人能解释我如何处理这个问题吗? 谢谢你在前进。

解决方案:

这应该做的工作。

# data
client3 <- client2 <- client1 <- data.frame(col1 = 1:3, col2 = 1:3)
p <- 4:6

# assigning new column to each df
for (e in 1:3) {
  eval(parse(text = paste0('client', e, '[,"Pasqua"] <- p')))
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

亚马逊AppFlow与亚马逊EventBridge在事件驱动的交互中的比较

2022-9-13 15:24:36

未分类

加零,使所有子集的大小相同,然后将它们相加,并在excel中显示出来

2022-9-13 15:24:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索