I think, here is the solution. If NA is included in read.table list the row becomes a factor: $ Q21: Factor w/ 3 levels " 1"," 2"," NA": 1 2 3 2 2. This will not work with rowSums. If I put the missing value as a blank, then it is still read as NA but the whole row is considered as an integer and OK for rowSums etc. A missing value in col Q00 will be interpreted as a row with one less value at the end, I think.
Ian

+ yy <- read.table( header = T, sep=",", text =
+ "Q00, Q20, Q21, Q22, Q23, Q24
+  0, 0, 1, 2, 3, 4
+  0, 1, 2, 3, 4, 5
+  0, 0, NA, 3, 4, 5
+  0, 1, 2, 3, 4, 5
+  0, 1, 2, 3, 4, 5")
+  yy
  Q00 Q20 Q21 Q22 Q23 Q24
1   0   0   1   2   3   4
2   0   1   2   3   4   5
3   0   0  NA   3   4   5
4   0   1   2   3   4   5
5   0   1   2   3   4   5
+ str(yy)
'data.frame': 5 obs. of  6 variables:
 $ Q00: int  0 0 0 0 0
 $ Q20: int  0 1 0 1 1
 $ Q21: Factor w/ 3 levels " 1"," 2"," NA": 1 2 3 2 2
 $ Q22: int  2 3 3 3 3
 $ Q23: int  3 4 4 4 4
 $ Q24: int  4 5 5 5 5

+ yy <- read.table( header = T, sep=",", text =
+ "Q00, Q20, Q21, Q22, Q23, Q24
+  0, 0, 1, 2, 3, 4
+  0, 0, , 3, 4, 5
+  0, 1, 2, 3, 4, 5")
+  yy
  Q00 Q20 Q21 Q22 Q23 Q24
1   0   0   1   2   3   4
2   0   0  NA   3   4   5
3   0   1   2   3   4   5
+ str(yy)
'data.frame': 3 obs. of  6 variables:
 $ Q00: int  0 0 0
 $ Q20: int  0 0 1
 $ Q21: int  1 NA 2
 $ Q22: int  2 3 3
 $ Q23: int  3 4 4
 $ Q24: int  4 5 5
+ x <- transform( yy, ############ Example 6
+    mySum   = rowSums(yy[ ,c("Q00","Q20","Q21","Q23")], na.rm=T),
+ myCount = as.numeric(!is.na(Q20))+as.numeric(!is.na(Q21))+as.numeric(!is.na(Q24)),
+    myMean  = rowMeans(yy[ ,c("Q00","Q20","Q21","Q23")], na.rm=T)
+  )
+ x
  Q00 Q20 Q21 Q22 Q23 Q24 mySum myCount   myMean
1   0   0   1   2   3   4     4       3 1.000000
2   0   0  NA   3   4   5     4       2 1.333333
3   0   1   2   3   4   5     7       3 1.750000

______________________________________________
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.

Reply via email to