Thank you so much Sarah and Jim, both solutions worked perfectly!! I still have so much to learn about R, and this fantastic team motivates me a lot!
I'd like to congratulate to all people that makes this work so well, it's so useful for those of us that are just beginning with R... and surely to those that know a little bit more :) Thank you! Sandra 2012/6/14 Jim Lemon <j...@bitwrit.com.au> > On 06/13/2012 11:41 PM, Nympha Nymphaea wrote: > >> Dear R-helpers, >> >> I'm stuck with a little problem that surely has an easy solution but I >> can't think of a way to solve it. I'd really appreciate any help you can >> offer me! >> >> I'll provide a small example. Given a dataframe data.txt that looks like >> this: >> >> ID freq Var Var_mean Ratio_mean Var_median >> Ratio_median Var_sum Ratio_min Var_max Ratio_max Var_min >> Ratio_sum >> 134 5 2.140 0.447 4.784 0.272 7.881 2.237 0.957 >> 0.833 2.568 0.187 11.437 >> 30 4 1.743 0.450 3.873 0.358 4.869 1.799 0.968 >> 0.915 1.904 0.169 10.329 >> 137 4 1.401 0.304 4.614 0.310 4.514 1.215 1.153 >> 0.480 2.921 0.114 12.268 >> 9 3 0.065 0.023 2.849 0.021 3.108 0.069 0.950 >> 0.030 2.137 0.017 3.799 >> 35 3 0.192 0.067 2.849 0.025 7.756 0.202 0.950 >> 0.153 1.258 0.025 7.756 >> 95 3 1.365 0.360 3.792 0.335 4.073 1.080 1.264 >> 0.484 2.820 0.261 5.237 >> 120 3 5.171 1.891 2.735 0.542 9.532 5.672 0.912 >> 4.970 1.040 0.160 32.408 >> 123 3 0.721 0.226 3.182 0.155 4.661 0.679 1.061 >> 0.372 1.939 0.153 4.704 >> 133 3 3.242 0.918 3.531 0.921 3.519 2.754 1.177 >> 1.551 2.090 0.282 11.512 >> 136 3 1.058 0.371 2.850 0.337 3.141 1.113 0.950 >> 0.449 2.358 0.328 3.225 >> 140 3 5.935 1.877 3.162 0.327 18.167 5.630 1.054 >> 5.114 1.160 0.189 31.332 >> 141 3 0.974 0.325 2.997 0.160 6.092 0.975 0.999 >> 0.661 1.473 0.154 6.330 >> 147 3 3.207 0.798 4.018 0.951 3.373 2.394 1.339 >> 1.148 2.793 0.296 10.840 >> 2 2 3.859 2.020 1.911 2.020 1.911 4.039 0.955 >> 3.714 1.039 0.326 11.851 >> 8 2 0.017 0.009 1.900 0.009 1.900 0.018 0.950 >> 0.014 1.266 0.005 3.799 >> 10 2 0.096 0.060 1.603 0.060 1.603 0.120 0.802 >> 0.060 1.599 0.060 1.607 >> 26 2 7.308 0.504 14.500 0.504 14.500 1.008 7.250 >> 0.813 8.990 0.195 37.459 >> 46 2 9.070 7.542 1.203 7.542 1.203 15.085 0.601 >> 7.576 1.197 7.509 1.208 >> 49 2 9.485 5.035 1.884 5.035 1.884 10.070 0.942 >> 9.406 1.008 0.664 14.289 >> 63 2 21.308 13.956 1.527 13.956 1.527 27.912 >> 0.763 14.148 1.506 13.764 1.548 >> >> And I need to calculate the mean of every column whose name starts with >> Ratio_. >> That is, I need to calculate the mean of the columns Ratio_mean (3.4882), >> Ratio_median (5.2607), Ratio_sum (1.29985), Ratio_min (2.1533), Ratio_max >> (11.1469). >> But I would like to have the results just at once, in one column or one >> after the other (and not to run the code for every single result). >> I do have almost 200 columns that start with Ratio_, so doing it by hand >> it's really burdensome... >> >> I tried with a "for" loop: >> >> >> for (x in 1:5) { >> x<- with(data, c(Ratio_mean, Ratio_median, Ratio_sum, Ratio_max, >> Ratio_min)) >> Mean<- with(data mean(x)) >> print(Mean) >> } >> >> >> But the result is: >> [1] 4.66979 >> [1] 4.66979 >> [1] 4.66979 >> [1] 4.66979 >> [1] 4.66979 >> >> which is the mean of all the columns together. I would like to obtain the >> mean of every column in each line: >> >> [1] 3.4882 >> [1] 5.2607 >> [1] 1.29985 >> [1] 2.1533 >> [1] 11.1469 >> >> >> I think my problem is that I don't know how to assign correctly the >> variable x. Does anyone know if that is possible or an alternative way to >> get that result? >> > > Hi Nympha, > Try this: > > nn<-read.table("nn.dat",**header=TRUE) > for(variable in grep("Ratio_",names(nn),fixed=**TRUE)) > print(mean(nn[,variable])) > > Jim > [[alternative HTML version deleted]] ______________________________________________ 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.