如何在不重复列的情况下创建数据框

问题描述 投票:0回答:1

我有 5 个表,其中包含相同的 A B C 列(列名称相同)

我想创建一个数据框,在其中合并所有五个表,我尝试了该命令

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 ( 35 = 15 ),但我想要的输出不是这个结果,而是:

A  B  C
12 2  1  
1  78 2  
4  2  3
12 1  5
34 5  1
12 2  12 
...
..
r dataframe stat
1个回答
0
投票

您可以根据字母进行拆分、堆叠和列装订,即

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
© www.soinside.com 2019 - 2024. All rights reserved.