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.

Reply via email to