Я использую R, и у меня есть два data.frames, A
и B
. Они оба имеют 6 строк, но A
имеет 25000 столбцов (генов), а B
имеет 30 столбцов. Я хотел бы применить функцию с двумя аргументами f(x,y)
, где x
- каждый столбец A
и y
- это каждый столбец B
. До сих пор это выглядит следующим образом:Применить к двум кадрам данных
i = 1
for (x in A){
j = 1
for (y in B){
out[i,j] <- f(x,y)
j = j + 1
}
i = i + 1
}
У меня есть две проблемы с этим: из моего программирования Python Я ассоциирую отслеживании счетчиков, как это как crufty, и от моего R программирования я нервничаю из за петли. Однако я не могу понять, как применить apply
(или даже если я должен применить apply
) к этой проблеме и надеялся, что кто-то может просветить меня. Мне нужно обработать f()
как атомный (это на самом деле cor.test()
).
В зависимости от 'f' это звучит подобно внутреннему произведению. Я знаю, что с внешним продуктом вы можете указать функцию для использования, но не знаете, как это сделать для внутреннего продукта. – James
Я не решаюсь предложить что-либо, так как я очень новый пользователь R, но у меня был хороший успех, используя пакет plyr для обработки данных. http://had.co.nz/plyr/ – dnagirl