r - 如何在不重复列的情况下创建数据框
问题描述
我有 5 个包含相同列 ABC 的表(列名相同)
我想创建一个数据框,在其中合并所有五个表,我尝试了命令
My_Data <- data.frame(T1,T2,T3,T4,T5,T6)
但我有这样的重复列
A B C A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4
12 2 1 12 1 5 12 12 2 1 8 9 7 2 12
1 78 2 34 5 1 4 45 4 5 4 4 6 4 3
4 2 3 12 2 12 6 23 12 45 12 23 8 5 4
如您所见,重复的列数为 5 ( 3 5 = 15 ),但不是这个结果,而是我想要的输出如下:
A B C
12 2 1
1 78 2
4 2 3
12 1 5
34 5 1
12 2 12
...
..
解决方案
您可以根据字母拆分,将它们堆叠起来并列绑定它们,即
l1 <- split.default(df, gsub('\\d+', '', names(df)))
setNames(do.call(cbind, lapply(l1, function(i)stack(i)[1])), names(l1))
# A B C
#1 12 2 1
#2 1 78 2
#3 4 2 3
#4 12 1 5
#5 34 5 1
#6 12 2 12
#7 12 12 2
#8 4 45 4
#9 6 23 12
#10 1 8 9
#11 5 4 4
#12 45 12 23
#13 7 2 12
#14 6 4 3
#15 8 5 4
推荐阅读
- reactjs - 'react-i18next: withNamespaces is not a function' 测试时
- angular - Angular中的双向数据绑定没有自动完成功能?
- list - F# 返回列表长度列表
- admob - Flutter:具有真实 AdUnitId 的 Admob Ios 奖励视频不起作用,但与 testid 一起使用
- vue.js - Nuxt 默认模板生成两倍于 Vuejs 大小的静态资源
- pandas - 迭代 Pyarrow 表的最快方法
- java - 通配符不解析 DispatcherServlet 中的子目录
- neo4j - 重构大型密码联合查询
- firebase - “未满足的对等依赖 firebase-admin@6.1.0”
- amazon-web-services - AWS Glue:访问拒绝访问具有 S3 源数据的表