[R] For loop with ifelse help

Pele drdionc at yahoo.com
Wed Sep 22 17:42:50 CEST 2010


Hello R users,

I have 2 files (file1 and f2) and I am trying to sum columns 6:10 of a
specific row in f2 and append it in
file 1 if the "state" variable in file 1 equals the rowname in f2.  Below is
an example of the code I wrote 
using a for loop, but it not working (i.e it only works for the last number
(10) in the loop). Can someone tell me how to fix?

Many thanks !

 file1 <- data.frame(ID=seq(1:30), state=sample(1:10, 30, replace=TRUE));
file1
   ID state
1   1     7
2   2     7
3   3     6
4   4     4
5   5     5
6   6     7
7   7    10
8   8     1
9   9     1
10 10     5
............
......... 

 file2 <- matrix(seq(1:100),nrow=10) 
  f2 <- as.data.frame(file2); f2
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1   1 11 21 31 41 51 61 71 81  91
2   2 12 22 32 42 52 62 72 82  92
3   3 13 23 33 43 53 63 73 83  93
4   4 14 24 34 44 54 64 74 84  94
5   5 15 25 35 45 55 65 75 85  95
6   6 16 26 36 46 56 66 76 86  96
7   7 17 27 37 47 57 67 77 87  97
8   8 18 28 38 48 58 68 78 88  98
9   9 19 29 39 49 59 69 79 89  99
10 10 20 30 40 50 60 70 80 90 100
 
 
 for (i in length(f2)) {
 file1$chksum <- ifelse ((file1$state==rownames(f2)[i]),
rowSums(f2[rownames(f2)[i], 6:10]), 0)
                      }
 print(file1)
   ID state chksum
1   1     7      0
2   2     7      0
3   3     6      0
4   4     4      0
5   5     5      0
6   6     7      0
7   7    10    400
8   8     1      0
9   9     1      0
10 10     5      0
11 11    10    400
12 12     9      0
13 13    10    400
14 14     9      0
15 15     5      0
16 16     3      0
17 17     1      0
18 18     7      0
19 19     7      0
20 20     2      0
21 21     3      0
22 22     8      0
23 23     8      0
24 24     4      0
25 25     6      0
26 26     6      0
27 27     3      0
28 28     3      0
29 29     5      0
30 30     5      0
-- 
View this message in context: http://r.789695.n4.nabble.com/For-loop-with-ifelse-help-tp2550547p2550547.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list