1
是否存在對此的「應用」應用程序,而不是基於R中的兩個數據幀的每一行進行雙循環(不使用包)?對列表中的每個元素和兩個數據幀的每一行應用函數
listD <- matrix(1:6, ncol=2)
listD <- split(listD,seq(NROW(listD)))
df1 <- data.frame(x=c(1,2), y=c(3,4))
df2 <- data.frame(x=c(3,2), y=c(1,1))
testFunc <- function(a, b, c) a * (b + c)
for (j in 1:nrow(df1)) {
for (s in 1:nrow(df2)) {
print(lapply(listD, FUN= testFunc, b=df1[j,], c=df2[s,]))
}
}
謝謝!
謝謝你dash2!我不知道外面!你能解釋爲什麼我需要「隱形」和「空白」(如果我不使用NULL,我得到一個錯誤)...也...我怎麼保存這個?謝謝!! – user971102
您需要它,否則它會嘗試將結果打印爲矩陣,但不會。使用'outer'保存結果很困難,因爲您不能將結果作爲矩陣返回。你可能想要進入內部:將'lapply'放在'outer'外面並返回一個矩陣列表。 – dash2
好的,如果循環和應用之間沒有區別,那麼我會堅持循環,因爲它更清晰(至少對我來說現在...) – user971102