[R] Error in colMeans with multiple column data.frame
arun
smartpink111 at yahoo.com
Wed May 15 15:17:06 CEST 2013
Hi,
#dput()
dat1<-
structure(list(a1 = c(432L, 0L, 1295L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 432L, 0L, 432L, 0L, 0L, 0L, 0L, 432L, 0L, 432L, 0L, 0L, 0L,
0L, 0L, 864L, 0L, 432L, 432L, 1296L, 0L, 432L, 0L, 0L, 432L,
0L, 863L, 432L, 0L, 432L, 432L, 0L, 432L, 0L, 0L, 432L, 864L,
0L, 432L, 0L, 432L, 0L, 0L, 432L, 0L, 432L, 0L, 0L, 0L, 0L, 432L,
0L, 432L, 0L, 0L, 0L, 432L, 2159L, 432L, 864L, 863L, 432L, 2160L,
3456L, 432L, 0L, 863L, 2159L, 0L, 864L, 1727L, 1728L, 5616L,
4318L), a2 = c(355L, 184L, 2L, 100L, 170L, 170L, 723L, 184L,
539L, 341L, 403L, 218L, 67L, 0L, 67L, 0L, 605L, 1L, 204L, 1221L,
0L, 170L, 184L, 170L, 67L, 356L, 0L, 67L, 355L, 513L, 369L, 402L,
184L, 170L, 34L, 355L, 526L, 374L, 355L, 271L, 67L, 639L, 185L,
388L, 756L, 67L, 205L, 170L, 34L, 100L, 526L, 170L, 606L, 67L,
184L, 696L, 0L, 170L, 0L, 184L, 34L, 0L, 403L, 0L, 341L, 0L,
355L, 1214L, 1901L, 1567L, 1382L, 1282L, 1811L, 394L, 843L, 828L,
743L, 581L, 979L, 783L, 2210L, 2427L, 3623L, 2887L), a3 = c(159L,
157L, 0L, 572L, 95L, 2L, 380L, 111L, 223L, 4L, 412L, 395L, 428L,
47L, 382L, 47L, 698L, 0L, 193L, 371L, 0L, 49L, 111L, 142L, 428L,
112L, 47L, 475L, 112L, 52L, 221L, 412L, 111L, 2L, 285L, 159L,
114L, 194L, 159L, 714L, 428L, 795L, 204L, 303L, 571L, 522L, 286L,
95L, 284L, 666L, 114L, 142L, 698L, 428L, 111L, 303L, 0L, 2L,
0L, 157L, 191L, 94L, 506L, 0L, 50L, 0L, 253L, 1302L, 1679L, 1368L,
1398L, 779L, 2099L, 444L, 1034L, 1066L, 509L, 480L, 799L, 626L,
1680L, 3859L, 3227L, 2478L), a4 = c(9304L, 9182L, 8861L, 9102L,
8421L, 8963L, 8483L, 8206L, 8670L, 8044L, 6938L, 7661L, 7176L,
7508L, 6978L, 8537L, 8651L, 8114L, 8904L, 8997L, 8454L, 8232L,
9251L, 8227L, 8147L, 8570L, 8285L, 8326L, 8379L, 8041L, 8253L,
8840L, 9085L, 8381L, 8744L, 8564L, 8479L, 8130L, 7785L, 9065L,
8621L, 8294L, 9243L, 8938L, 9574L, 8733L, 7760L, 8089L, 8132L,
7704L, 7414L, 8039L, 8443L, 9334L, 8313L, 8280L, 8578L, 7820L,
7738L, 8867L, 7664L, 8368L, 8601L, 9330L, 8782L, 7676L, 7033L,
8068L, 8230L, 8813L, 8329L, 8162L, 8465L, 8263L, 8195L, 7338L,
8134L, 7325L, 7999L, 8337L, 7633L, 8248L, 7566L, 7520L), a5 = c(9949L,
10120L, 10410L, 9836L, 9044L, 9261L, 8923L, 9373L, 8714L, 7977L,
7755L, 7898L, 7957L, 8160L, 7811L, 8486L, 9421L, 8923L, 9324L,
9681L, 8838L, 8994L, 10790L, 9616L, 8359L, 8578L, 8859L, 8915L,
9061L, 9023L, 9262L, 8704L, 9718L, 9335L, 8999L, 9387L, 10050L,
7840L, 8728L, 9168L, 9906L, 8697L, 9206L, 9789L, 9090L, 8931L,
8340L, 8597L, 8702L, 8686L, 8370L, 8385L, 9366L, 9000L, 8312L,
8597L, 9124L, 9355L, 7975L, 8843L, 8629L, 9230L, 9095L, 8670L,
8562L, 8191L, 8274L, 8903L, 9152L, 8729L, 9207L, 8644L, 7745L,
8833L, 8508L, 7591L, 8734L, 8426L, 8233L, 9256L, 8735L, 8895L,
8268L, 8146L), interval = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L,
7L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L,
10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L,
12L, 12L, 12L, 13L, 13L, 13L, 13L, 13L, 13L, 14L, 14L, 14L, 14L,
14L, 14L)), .Names = c("a1", "a2", "a3", "a4", "a5", "interval"
), class = "data.frame", row.names = c(NA, -84L))
library(plyr)
res1<-ddply(dat1,.(interval),colMeans)
res2<-ddply(dat1,.(interval),numcolwise(mean))
head(res1)
# a1 a2 a3 a4 a5 interval
#1 287.8333 163.5000 164.1667 8972.167 9770.000 1
#2 72.0000 401.3333 254.1667 8000.333 8440.000 2
#3 144.0000 123.3333 267.0000 7827.333 8459.667 3
#4 72.0000 324.8333 144.3333 8677.500 9540.500 4
#5 504.0000 226.3333 204.3333 8291.333 8799.167 5
#6 144.0000 252.3333 198.3333 8644.500 9234.167 6
identical(res2,cbind(interval=as.integer(res1[,6]),res1[,-6]))
#[1] TRUE
res3<- aggregate(. ~ interval, data = dat1, mean)
identical(res2,res3)
#[1] TRUE
A.K.
----- Original Message -----
From: Simonas Kecorius <simolas2008 at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Wednesday, May 15, 2013 5:46 AM
Subject: [R] Error in colMeans with multiple column data.frame
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.
--
Simonas Kecorius
**
[[alternative HTML version deleted]]
______________________________________________
R-help at 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.
More information about the R-help
mailing list