help to program my function
Hi Maybe it is time for you to read some basic stuff like R intro. It seems to me that you expect R to behave like some other language you know but probably your expectation is wrong. See inline
HI
i have a problem please help me to solve it:
i want to calculate the vecteur a[j] where j: 1...8
this is the code in R:
aj.fun <- function(j, i, X, z, E, beta0, beta1){
+ n <- length(X) + iX <- order(X) + iz <- order(z) + e1 <- -(beta)*z[ iz[1:(i - 1)] ]
where do you get beta
+ numer <- E[j] - sum( X[ iX[1:(i - 1)] ] * exp(e1) ) + e2 <- -(beta)*z[ iz[i:n] ] + denom <- sum( exp(e2) ) + numer/denom + }
iX<-order(X) iX
[1] 75 37 29 60 73 20 69 55 30 70 72 38 26 35 65 61 74 50 71 57 25 54
64 76
56 [26] 58 48 67 46 63 28 62 36 49 47 66 1 42 41 19 39 43 22 51 68 33 27 9
15
11 [51] 10 59 32 40 45 44 52 16 18 34 4 53 21 23 31 7 6 13 14 12 17 24 5
8
2 [76] 3
iZ<-order(Z) iZ
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
23 24
25 [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49
50 [51] 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
73 74
75 [76] 76
e1 <- -(beta)*Z[ iZ[1:(i - 1)] ]
Warning message: In 1:(i - 1) : numerical expression has 76 elements: only the first used
As somebody already mentioned i is probably vector and in this case only first value is taken. i seems to have the firs value 3.
e1
[1] -442 -1664
numer <- E[j] - sum( X[ iX[1:(i - 1)] ] * exp(e1))
Warning message: In 1:(i - 1) : numerical expression has 76 elements: only the first used
numer
[1] 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5
Here j is vector of 8 values therefore 8 values
e2 <- -(beta)*Z[ iZ[i:n] ]
Warning message: In i:n : numerical expression has 76 elements: only the first used
e2
[1] -442 -1664 -442 -1792 -476 -1792 -476 -1792 -510 -1920 -510
-1920
[13] -510 -1920 -510 -1920 -510 -1920 -510 -2048 -544 -2048 -544
-2048
[25] -544 -2048 -544 -2048 -544 -2048 -544 -2048 -544 -2048 -578
-2176
[37] -578 -2176 -578 -2176 -578 -2176 -578 -2176 -578 -2176 -578
-2176
[49] -578 -2176 -578 -2176 -578 -2304 -612 -2304 -612 -2304 -612
-2304
[61] -612 -2304 -612 -2304 -612 -2304 -612 -2304 -646 -2432 -646
-2432
[73] -646 -2432 -646 -2432
Strange, here first value of i seems to be 1 as n shall be 76 and final e2 length is 76.
denom <- sum( exp(e2) )
numer/denom
[1] 4.313746e+192 4.313746e+192 4.313746e+192 4.313746e+192
4.313746e+192
[6] 4.313746e+192 4.313746e+192 4.313746e+192
my problem that the vecteur a[j] could not have the same number!!!
I do not understand. Your numer is 9.5 repeted 8 times. If you divide it by one number you will get nine times the same number. You send us a code but no data so it is difficult to understand what is your goal. It would be better to send input data j, i, X, z, E, beta0, beta1 and assumed result in whole not in chunks scattered in several mails. Regards Petr
thank you in advance hafida -- View this message in context: http://r.789695.n4.nabble.com/help-to- program-my-function-tp4639434.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.