# logical condition in vector operation

4 messages
Open this post in threaded view
|

## logical condition in vector operation

 HI All, I have a data frame such as: > test      x y  p  d [1,] 1 0 10 21 0 [2,] 2 3 11 12 0 [3,] 3 4 12 23 0 [4,] 3 5 13 24 0 and I want to perfor some operations on the first two coulums, conditional on the uneqaulity values on the 3rd and 4th columns. For instance: j = 3 test[test[,1] == j, 5] = test[test[,1] == j,2] + test[test[,2] == j,1] gives me the result: test:      x y  p  d [1,] 1 0 10 21 0 [2,] 2 3 11 12 0 [3,] 3 4 12 23 6 [4,] 3 5 13 24 7 My probblem is the following: I want to perform the operation test[test[,1] == j,2] + test[test[,2] == j,1] only if the value of column p and column d are different at the positions where x or y = j. In practice, I don't want to perform the first operation because test[2,4 is 12 and test[1,3] is 12 as well. I tried an if statement with little success: if(test[test[,1] == j,3] != test[test[,2] == j,4]){ test[test[,1] == j, 5] = test[test[,1] == j,2] + test[test[,2] == j,1] } Warning message: the condition has length > 1 and only the first element will be used in: if (test[test[, 1] == j, 3] != test[test[, 2] == j, 4]) { Could anyone lend some advice? Cheers, Federico -- Federico C. F. Calboli Department of Epidemiology and Public Health Imperial College, St Mary's Campus Norfolk Place, London W2 1PG Tel  +44 (0)20 7594 1602     Fax (+44) 020 7594 3193 f.calboli [.a.t] imperial.ac.uk f.calboli [.a.t] gmail.com ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Open this post in threaded view
|