gpt4 book ai didi

rbind 具有不同列名的数据框

转载 作者:行者123 更新时间:2023-12-03 14:35:12 26 4
gpt4 key购买 nike

我有 12 个数据框,每个包含 6 列:5 个名称相同,1 个不同。然后当我调用 rbind()我得到:

Error in match.names(clabs, names(xi)) : 
names do not match previous names
不同的列是:“goal1Completions”。有12个goalsCompletions……它们是:“goal1Completions”、“goal2Completions”、“goal3Completions”……等等。
我能想到的最好方法是:将每个数据框中的每一列重命名为“GoalsCompletions”,然后使用“rbind()”。
有没有更简单的方法?
在 Google O 上查找此包:“ gtools”。它有一个名为“smartbind”的功能。但是,在使用 smartbind() 之后,我想用“View()”查看数据框,我的 R session 崩溃了......
我的数据(第一个数据框的示例):
       date      source     medium   campaign   goal1Completions    ad.cost           Goal
1 2014-10-01 (direct) (none) (not set) 0 0.0000 Vida
2 2014-10-01 Master email CAFRE 0 0.0000 Vida
3 2014-10-01 apeseg referral (not set) 0 0.0000 Vida

最佳答案

您可以使用 rbindlist它采用不同的列名。使用@LyzanderR 的数据

library(data.table) #data.table_1.9.5
rbindlist(list(a,b))
# a b
# 1: 0.8403348 0.1579255
# 2: 0.4759767 0.8182902
# 3: 0.8091875 0.1080651
# 4: 0.9846333 0.7035959
# 5: 0.2153991 0.8744136
# 6: 0.7604137 0.9753853
# 7: 0.7553924 0.1210260
# 8: 0.7315970 0.6196829
# 9: 0.5619395 0.1120331
#10: 0.5711995 0.7252631

更新

基于 12 个数据集的对象名称(即 'Goal1_Costo'、'Goal2_Costo'、...、'Goal12_Costo'),
 nm1 <- paste(paste0('Goal', 1:12), 'Costo', sep="_")
#or using `sprintf`
#nm1 <- sprintf('%s%d_%s', 'Goal', 1:12, 'Costo')
rbindlist(mget(nm1))

关于rbind 具有不同列名的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566588/

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