У меня есть две части вопроса для применения функции по набору данных в R.Применить функцию итеративно через dataframe
я: а) Во-первых, у меня есть 2 кадра данных, которые я хотел бы быть объединены и парные итеративно, так что что-то вроде функции cbind будет выравнивать первые столбцы каждого кадра данных рядом друг с другом, затем с 2-м столбцом и так далее. В приведенном ниже примере я хотел бы получить вывод, объединяющий df1 и df2, где порядок столбцов будет eg1, например4, 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
Но пример, используя это через набор данных, может быть, через какую-либо форму применить функцию будет гораздо более эффективным.