How to combine for loop with function I made in R? , and want to loop in satis.list. However, it failed to loop..
I made a function 'site_table' below.
> satis.list <- paste0("s1_", 1:19)
> satis.list <- c(satis.list,"s2","s3","s4")
> satis.list
 [1] "s1_1"  "s1_2"  "s1_3"  "s1_4"  "s1_5"  "s1_6"  "s1_7"  "s1_8"  "s1_9" 
[10] "s1_10" "s1_11" "s1_12" "s1_13" "s1_14" "s1_15" "s1_16" "s1_17" "s1_18"
[19] "s1_19" "s2"    "s3"    "s4"   
And make a function site_table below.
> site_table = function(var){
+   var_name <- eval(substitute(var),eval(work.data))
+   a <- table(var_name,work.data$site)
+   b.list <- list(a[2,1], a[2,2], a[2,3])
+   b.data <- data.frame(t(b.list))
+   b.data
+ }
I want to repeat this like below from "s1_1" to "s4" in satis.list
> site_table(s1_1)
  X1 X2 X3
1  2  2  7
> site_table(s1_2)
  X1 X2 X3
1  2  3  4
> site_table(s1_3)
  X1 X2 X3
1  3  1  4
I tried to using this code but failed.
> c.data <- data.frame()
> for(i in satis.list){
+   site_table(i)
+   c.data <- rbind(c.data, b.data)
+ }
 Error in table(var_name, work.data$site) : 
  all arguments must have the same length 
It is the output what I want to make lastly.
  Row.names X1 X2 X3
1    s1_1    2  2  7
1    s1_2    2  3  4
1    s1_3    3  1  4
 
    