Re: [程式] R apply
按程式揣測,產生一串向量後,
讓一個一個元素逐一來比較其向量內所有元素大小,
最後再合併成一個矩陣,對吧!?
提供另外一個方案,一行程式即可:
a <- rnorm(10, 0, 1)
q <- sapply(1:length(a), function(i) a <= a[i]) + 0
矩陣 q 即為所求~!
※ 引述《memphis (讓你喜歡這世界~)》之銘言:
: ※ 引述《laba1014 (我也要去美國!!!)》之銘言:
: : 想請問板上前輩 以下的雙迴圈要怎樣用 apply 簡化計算 ?
: : aaa <- matrix(1:3, 3, 1) # aaa 是依個 3*1 的 vector a[i,1]= i , i =1, 2, 3
: : q <- matrix(NA, 3, 3)
: : For (j in 1:3) { For (i in 1:3) {
: : if ( a[i,1] < a[j,1] ) { q[i,j] <- 0 } else { q[i,j] <- 1 }
: : }}
: : q 出來應該會是個上三角矩陣 1 1 1
: : 0 1 1
: : 0 0 1
: : 先謝謝肯回答的版友 <(_ _)>
: 看起來是一個vector裡要兩兩比較大小
: 如果我沒有會錯意的話...
: 方案一
: a <- rnorm(100,0,1)
: final <- c()
: for(i in 1:length(a)){
: temp <- rev(as.numeric(a[i]>a))
: final <- rbind(final, temp)
: }
: 方案二
: a <- rnorm(100,0,1)
: b <- combn(a,2)
: c <- as.numeric(b[1,]>b[2,])
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.0.238
推
01/14 14:32, , 1F
01/14 14:32, 1F
討論串 (同標題文章)