У меня есть вопрос из двух частей о применении функции к набору данных в R.
i) Во-первых, у меня есть 2 фрейма данных, которые я хотел бы объединить и спарить итеративно, чтобы что-то вроде функции cbind выстраивало 1-й столбец каждого фрейма данных рядом друг с другом, затем 2-й столбец и так далее. В приведенном ниже примере я хотел бы, чтобы вывод объединял df1 и df2, где порядок столбцов был бы eg1, eg4, eg2, eg5, eg3, eg6.
eg1 <- as.data.frame(matrix(sample(0:1000, 36*10, replace=TRUE), ncol=1))
eg2 <- as.data.frame(matrix(sample(0:500, 36*10, replace=TRUE), ncol=1))
eg3 <- as.data.frame(matrix(sample(0:750, 36*10, replace=TRUE), ncol=1))
df1 <- cbind(eg1,eg2,eg3)
eg4 <- as.data.frame(matrix(sample(0:200, 36*10, replace=TRUE), ncol=1))
eg5 <- as.data.frame(matrix(sample(0:100, 36*10, replace=TRUE), ncol=1))
eg6 <- as.data.frame(matrix(sample(0:350, 36*10, replace=TRUE), ncol=1))
df2 <- cbind(eg4,eg5,eg6)
Я знаю ручной способ сделать это (ниже), но это не было бы идеально при объединении гораздо больших наборов данных, и мне было интересно, есть ли более эффективный способ добиться этого?
df3 <- cbind(df1,df2)
df3 <- df3[,c(1,4,2,5,3,6)]
(ii) После этого я хотел бы вывести семь значений в каждом нечетном столбце на основе 7 самых высоких значений в соответствующем четном столбце. Например, для первых двух столбцов...
df4 <- df3[,1:2]
High_7 <- tail(df4[order(df4[,2]),],7)#Highest 7 values in even column
High_7 <- High_7[,1] #Select odd column values
Но пример, использующий это в наборе данных, возможно, с помощью какой-либо функции применения, был бы намного эффективнее.