В R вы можете использовать Reduce
и merge
Reduce(function(x, y) merge(x, y, by = 'V1'), list(df1, df2, df3))
#If there are lot of dataframes use `mget` and `ls`
#Reduce(function(x, y) merge(x, y, by = 'V1'), mget(ls(pattern = "df\\d+")))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1 AB 45.2 4.56 0.21 12.2 31.2 5.1 12.1 12.0 62.6
#2 FG 78.1 54.10 36.10 9.0 32.0 32.6 11.3 31.2 54.1
#3 HG 98.1 25.00 12.60 8.1 23.1 56.1 15.2 21.6 20.2
#4 TR 1.2 3.25 65.10 5.2 41.6 10.2 31.1 32.1 66.1
data
, где один столбец в данных является общим для всех фреймов данных и остальные из них имеют разные имена.
df1 <- structure(list(V1 = structure(1:4, .Label = c("AB", "FG", "HG",
"TR"), class = "factor"), V2 = c(45.2, 78.1, 98.1, 1.2), V3 = c(4.56,
54.1, 25, 3.25), V4 = c(0.21, 36.1, 12.6, 65.1)),
class = "data.frame", row.names = c(NA, -4L))
df2 <- structure(list(V1 = structure(4:1, .Label = c("AB", "FG", "HG",
"TR"), class = "factor"), V5 = c(5.2, 8.1, 9, 12.2), V6 = c(41.6,
23.1, 32, 31.25), V7 = c(10.21, 56.1, 32.6, 5.1)), class = "data.frame",
row.names = c(NA, -4L))
df3 <- structure(list(V1 = structure(c(3L, 4L, 1L, 2L), .Label = c("AB",
"FG", "HG", "TR"), class = "factor"), V8 = c(15.2, 31.1, 12.1,
11.3), V9 = c(21.6, 32.1, 12, 31.25), V10 = c(20.21, 66.1, 62.6,
54.1)), class = "data.frame", row.names = c(NA, -4L))