2016-04-01 2 views
2

У меня есть два списка кадров данных. Назовем их list_A и list_B.Как применить функцию к двум спискам кадров данных?

df1 = data.frame(matrix(rnorm(4), nrow=2)) 
df2 = data.frame(matrix(rnorm(4), nrow=2)) 
df3 = data.frame(matrix(rnorm(4), nrow=2)) 
df4 = data.frame(matrix(rnorm(4), nrow=2)) 

list_A <- list(df1,df2) 
list_B <- list(df3,df4) 

Как бы я применил некоторые индивидуальные функции в списках в элементе мудрым образом? Например, умножьте df1 на df3 и df2 на df4. Затем функция должна принимать первые два кадра данных из списков, определять их как матрицы и умножать их. Я очень ценю любую помощь!

ответ

6

Мы можем использовать Map применить функцию на соответствующие элементы 'list_A' и 'list_B'

Map(`*`, list_A, list_B) 

Как @RHertel упоминалось в комментариях, если функция необходима в %*%

Map(function(x,y) as.matrix(x) %*% as.matrix(y), list_A, list_B) 
+2

Это великолепно и точно то, что я искал. Спасибо также за пример с матричным умножением. Он работает отлично. –

Смежные вопросы