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. ______________________________________________ R-help@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.