how to count elements in each column of a table in R
<p>i have a data set which look like this (actually it has >50 columns)</p>

<p><code>data &lt;- read.csv("sample.csv")</code></p>

<pre><code>subject gender  age type    satisfation     agree 
1   f   22  a   yes yes
2   f   23  b   no  yes 
3   f   21  b       no
4   m   24  c   yes yes 
5   f   22  b   no  yes
6   m       a   yes yes 
7       25  c   yes no
8   m   21  b   no  yes 
9   f   23  c   yes yes
</code></pre>

<p>I would like to count the elements in each column (don't count NA) and export the result as the layout below</p>

<pre><code>subject gender  age type    satisfation     agree 
9   8   8   9   8   9
</code></pre>

<p>i wrote a script to count</p>

<pre><code>counting &lt;- function(x) {
  for(i in 1:length(data)) {
     data &lt;- length(which(!is.na(x$i)))
      print(data)
  }
  return(data)
}   
counting(data)
</code></pre>

<p>i didn't work out as it gave all 0.</p>

<p><code>dput(head(data, 9))</code></p>

<pre><code>structure(list(subject = 1:9, gender = structure(c(2L, 2L, 2L, 
3L, 2L, 3L, 1L, 3L, 2L), .Label = c("", "f", "m"), class = "factor"), 
    age = c(22L, 23L, 21L, 24L, 22L, NA, 25L, 21L, 23L), type = structure(c(1L, 
    2L, 2L, 3L, 2L, 1L, 3L, 2L, 3L), .Label = c("a", "b", "c"
    ), class = "factor"), satisfation = structure(c(3L, 2L, 1L, 
    3L, 2L, 3L, 3L, 2L, 3L), .Label = c("", "no", "yes"), class = "factor"), 
    agree = structure(c(2L, 3L, 1L, 3L, 2L, 3L, 1L, 3L, 2L), .Label = c("no", 
    "yes", "yes "), class = "factor"), time = c(23L, 54L, 67L, 
    324L, 87L, 12L, 756L, 34L, 98L), day = c(1L, 3L, 2L, 5L, 
    7L, 4L, 3L, 1L, 4L)), .Names = c("subject", "gender", "age", 
"type", "satisfation", "agree", "time", "day"), row.names = c(NA, 
9L), class = "data.frame")
</code></pre>

<p>Is there any recommendation for the script, plz?</p>

<p>Thank you all in advance!</p>