作者KnightX (........)
看板Statistics
标题Re: [程式] R apply
时间Wed Jan 13 22:28:41 2010
按程式揣测,产生一串向量後,
让一个一个元素逐一来比较其向量内所有元素大小,
最後再合并成一个矩阵,对吧!?
提供另外一个方案,一行程式即可:
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
1F:推 laba1014:K大太神啦 感谢 01/14 14:32