[R] Error in colMeans with multiple column data.frame

Pascal Oettli kridox at ymail.com
Wed May 15 12:16:38 CEST 2013


Hi,

I renamed your data.frame "df", as "data" is a built-in function.

You can achieve what you are looking for with:

 > datf.mean <- with(datf, aggregate(datf[,-6], list(interval=interval), 
mean))

Advice:
Next time, use "dput" when you submit a data set to R-help.

Hope this helps,
Pascal



On 05/15/2013 06:46 PM, Simonas Kecorius wrote:
> Dear R users,
>
> Here is my data:
>
> "a1"    "a2"    "a3"    "a4"    "a5"    "interval"
> 432    355    159    9304    9949    1
> 0    184    157    9182    10120    1
> 1295    2    0    8861    10410    1
> 0    100    572    9102    9836    1
> 0    170    95    8421    9044    1
> 0    170    2    8963    9261    1
> 0    723    380    8483    8923    2
> 0    184    111    8206    9373    2
> 0    539    223    8670    8714    2
> 0    341    4    8044    7977    2
> 432    403    412    6938    7755    2
> 0    218    395    7661    7898    2
> 432    67    428    7176    7957    3
> 0    0    47    7508    8160    3
> 0    67    382    6978    7811    3
> 0    0    47    8537    8486    3
> 0    605    698    8651    9421    3
> 432    1    0    8114    8923    3
> 0    204    193    8904    9324    4
> 432    1221    371    8997    9681    4
> 0    0    0    8454    8838    4
> 0    170    49    8232    8994    4
> 0    184    111    9251    10790    4
> 0    170    142    8227    9616    4
> 0    67    428    8147    8359    5
> 864    356    112    8570    8578    5
> 0    0    47    8285    8859    5
> 432    67    475    8326    8915    5
> 432    355    112    8379    9061    5
> 1296    513    52    8041    9023    5
> 0    369    221    8253    9262    6
> 432    402    412    8840    8704    6
> 0    184    111    9085    9718    6
> 0    170    2    8381    9335    6
> 432    34    285    8744    8999    6
> 0    355    159    8564    9387    6
> 863    526    114    8479    10050    7
> 432    374    194    8130    7840    7
> 0    355    159    7785    8728    7
> 432    271    714    9065    9168    7
> 432    67    428    8621    9906    7
> 0    639    795    8294    8697    7
> 432    185    204    9243    9206    8
> 0    388    303    8938    9789    8
> 0    756    571    9574    9090    8
> 432    67    522    8733    8931    8
> 864    205    286    7760    8340    8
> 0    170    95    8089    8597    8
> 432    34    284    8132    8702    9
> 0    100    666    7704    8686    9
> 432    526    114    7414    8370    9
> 0    170    142    8039    8385    9
> 0    606    698    8443    9366    9
> 432    67    428    9334    9000    9
> 0    184    111    8313    8312    10
> 432    696    303    8280    8597    10
> 0    0    0    8578    9124    10
> 0    170    2    7820    9355    10
> 0    0    0    7738    7975    10
> 0    184    157    8867    8843    10
> 432    34    191    7664    8629    11
> 0    0    94    8368    9230    11
> 432    403    506    8601    9095    11
> 0    0    0    9330    8670    11
> 0    341    50    8782    8562    11
> 0    0    0    7676    8191    11
> 432    355    253    7033    8274    12
> 2159    1214    1302    8068    8903    12
> 432    1901    1679    8230    9152    12
> 864    1567    1368    8813    8729    12
> 863    1382    1398    8329    9207    12
> 432    1282    779    8162    8644    12
> 2160    1811    2099    8465    7745    13
> 3456    394    444    8263    8833    13
> 432    843    1034    8195    8508    13
> 0    828    1066    7338    7591    13
> 863    743    509    8134    8734    13
> 2159    581    480    7325    8426    13
> 0    979    799    7999    8233    14
> 864    783    626    8337    9256    14
> 1727    2210    1680    7633    8735    14
> 1728    2427    3859    8248    8895    14
> 5616    3623    3227    7566    8268    14
> 4318    2887    2478    7520    8146    14
>
> I read it from a file:
>
> data<-read.table("data.txt", head=T, sep="\t")
>
> When I try count column mean by interval:
>
> newData <- do.call(rbind, tapply(data[1:5], data$interval, colMeans))
>
>
> I get an error: Error in tapply(data[1:5], data$interval, colMeans) :
>    arguments must have same length
>
> Has anyone any clue what is wrong?
> Thank you in advance.
>



More information about the R-help mailing list