作者laba1014 (I-20快点来)
站内Statistics
标题[程式] R 基本回圈的两个问题
时间Mon May 17 05:00:51 2010
抱歉 打扰了 想请教两个关於R的回圈问题
Q1: 我现在手上有样本 X[i] , i = 1:n ; 以及函数 f(x,y)
Y[j] , j = 1:m
我现在想造一个 n ×m 的 matrix P
双回圈写成
for (i in 1:n) {
for (j in 1:m) {
P[i,j] <- f(X[i], Y[j])
}}
我的问题在 n,m 大的时候他实在很慢 .....
想请问版友能否赐教些更快的简化作法??
Q2: 上述的问题我有尝试过用 X <- X[1:n] , Y <- Y[1:m]
Q <- f(X,Y) 来做,尝试简单的例子时 t(Q) 就会和 P 相等
但是实际操作的时候 除了第一行 t(Q)[,1] 和 P[,1] 会相等之外
其他位置均不相同, 想请教是哪里出错了呢 ?
不好意思 问题蛮阳春的 恳请板上的前辈不吝指教 <(_ _)>
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.14.158
※ 编辑: laba1014 来自: 61.230.14.158 (05/17 05:02)
1F:→ maoc:这要看你怎麽写 f(x,y) 了, 写得好的话可以用 sapply ?? 05/17 07:16
2F:→ diplazium:我想是你产生t(Q)的f(X,Y)写的方式无法处理X, Y vectors 05/17 09:12
3F:→ diplazium:以你的例子,可用outer(X, Y, FUN="*")来替代双重回圈式 05/17 09:14
4F:→ rockken:令函数f=function(a,b){a*b+8},outer(x, y, "f")。 05/17 09:28
5F:→ clickhere:你的f()?? 05/17 13:44
6F:→ laba1014:感谢楼上的几位前辈指教 我成功压缩计算时间了 05/19 05:13
7F:→ laba1014:真的非常感谢 m(_ _)m 05/19 05:13