簡體   English   中英

R申請兩個數據幀

[英]R apply for two data frames

我真的可以想象,答案可以在stackoverflow上找到,但后來我不明白。 所以這是我的問題:

我有一個data.frame“ tmp”,它由17列和許多行組成。 我想要做的是使用apply函數逐行使用tmp信息和tmp信息:

tmp[,17] <- apply(tmp[,4:16], 1, approx, y = y, x = tmp[,2])

y是固定的。

我的問題是,我現在得到anx n-Matrix,因為apply函數會計算tmp[,4:16]tmp[,2]每一對。 我需要的只是對角線,即

(tmp[1,4:16], tmp[1,2]), (tmp[2,4:16], tmp[2,2]), (tmp[3,4:16], tmp[3,2]),...

而且我想避免制作諸如diag(apply(...))或循環之類的東西,因為我想減少計算時間。

我希望有人能幫助我,並非常感謝您

這是你想要的嗎? 請注意, tmp[, 4:16]tmp[, 2]都使用同一行i

set.seed(4542)  # make it reproducible

tmp <- as.data.frame(matrix(rnorm(20*17), ncol = 17))
y <- rnorm(length(4:16))

s <- sapply(seq_along(tmp[, 1]), function(i) approx(y, tmp[i, 4:16], tmp[i, 2]))

除了seq_along(tmp[, 1]) ,也可以使用seq_len(nrow(tmp))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM