Hello!
I often plot average of y instead of all y values, since one can easily
see the trend if there is to many points and/or x might be like 1, 2, 3,
4, 5, ... and you might get a cloud (which can also be informative)
and/or columns of points.
Anyway, learning with R i get stucked. I have the data in table
burnins1, with the following names:
names(burnins1)
[1] "Model" "Replication" "h2"
"burnin"
and some data
...
...
380 New 80 2 23
381 New 81 5 38
382 New 82 10 31
383 New 83 15 98
384 New 84 20 32
385 New 85 40 30
386 New 86 1 43
387 New 87 2 53
388 New 88 5 36
389 New 89 10 51
390 New 90 15 19
...
...
So I want to plot mean of variable burnin by variables model and h2. I
compute means with
tmp <- as.data.frame(t(tapply(burnin, list(Model, h2), mean)))
and table tmp looks like this
Old New
1 31.00 29.36
2 30.30 28.34
5 32.92 30.66
10 39.00 37.54
15 40.66 34.07
20 39.29 35.94
40 28.63 28.51
Now I want to launch something like
plot(tmp[, 0], Old)
points(tmp[, 0], New, pch = 20)
and it gives me the error
Error in pairs.default(x, ...) : non-numeric argument to pairs
I guess that I am having problem with tmp[, 0]. If I use
plot(Old)
points(New, pch = 20)
I get the plot, but abscisa is numbered from 1 to 7 not 1, 2, 5, 10, 15,
20 and 40. Does anyone have any sugestions?
I would also like to produce table like this, so plotting would be
easier, since there would be no need to use points() and/or lines()
commands to add another group.
Model h2 mean
1 Old 1 31.00
2 Old 2 30.30
3 Old 5 32.92
4 Old 10 39.00
5 Old 15 40.66
6 Old 20 39.29
7 Old 40 28.63
8 Old 1 29.36
9 Old 2 28.34
10 Old 5 30.66
11 Old 10 37.54
12 Old 15 34.07
13 Old 20 35.94
14 Old 40 28.51
--
Lep pozdrav / With regards / Con respeto,
Gregor GORJANC
---------------------------------------------------------------
University of Ljubljana
Biotechnical Faculty URI: http://www.bfro.uni-lj.si
Zootechnical Department mail: gregor.gorjanc <at> bfro.uni-lj.si
Groblje 3 tel: +386 (0)1 72 17 861
SI-1230 Domzale fax: +386 (0)1 72 41 005
Slovenia
Gregor GORJANC wrote:> Hello! > > I often plot average of y instead of all y values, since one can > easily see the trend if there is to many points and/or x might be like > 1, 2, 3, 4, 5, ... and you might get a cloud (which can also be > informative) and/or columns of points. > > Anyway, learning with R i get stucked. I have the data in table > burnins1, with the following names: > > names(burnins1) > [1] "Model" "Replication" "h2" "burnin" > > and some data > ... > ... > 380 New 80 2 23 > 381 New 81 5 38 > 382 New 82 10 31 > 383 New 83 15 98 > 384 New 84 20 32 > 385 New 85 40 30 > 386 New 86 1 43 > 387 New 87 2 53 > 388 New 88 5 36 > 389 New 89 10 51 > 390 New 90 15 19 > ... > ... > > So I want to plot mean of variable burnin by variables model and h2. I > compute means with > > tmp <- as.data.frame(t(tapply(burnin, list(Model, h2), mean))) > > and table tmp looks like this > > Old New > 1 31.00 29.36 > 2 30.30 28.34 > 5 32.92 30.66 > 10 39.00 37.54 > 15 40.66 34.07 > 20 39.29 35.94 > 40 28.63 28.51 > > Now I want to launch something like > plot(tmp[, 0], Old) > points(tmp[, 0], New, pch = 20) >There is no column 0. R starts counting at 1. Try something like plot(as.numeric(rownames(tmp)), tmp[,"Old"]) (not tested) Kjetil> and it gives me the error > > Error in pairs.default(x, ...) : non-numeric argument to pairs > > I guess that I am having problem with tmp[, 0]. If I use > > plot(Old) > points(New, pch = 20) > > I get the plot, but abscisa is numbered from 1 to 7 not 1, 2, 5, 10, > 15, 20 and 40. Does anyone have any sugestions? > > I would also like to produce table like this, so plotting would be > easier, since there would be no need to use points() and/or lines() > commands to add another group. > > Model h2 mean > 1 Old 1 31.00 > 2 Old 2 30.30 > 3 Old 5 32.92 > 4 Old 10 39.00 > 5 Old 15 40.66 > 6 Old 20 39.29 > 7 Old 40 28.63 > 8 Old 1 29.36 > 9 Old 2 28.34 > 10 Old 5 30.66 > 11 Old 10 37.54 > 12 Old 15 34.07 > 13 Old 20 35.94 > 14 Old 40 28.51 > >-- Kjetil Halvorsen. Peace is the most effective weapon of mass construction. -- Mahdi Elmandjra
Gregor GORJANC wrote:> Hello! > > I often plot average of y instead of all y values, since one can easily > see the trend if there is to many points and/or x might be like 1, 2, 3, > 4, 5, ... and you might get a cloud (which can also be informative) > and/or columns of points. > > Anyway, learning with R i get stucked. I have the data in table > burnins1, with the following names: > > names(burnins1) > [1] "Model" "Replication" "h2" "burnin" > > and some data > ... > ... > 380 New 80 2 23 > 381 New 81 5 38 > 382 New 82 10 31 > 383 New 83 15 98 > 384 New 84 20 32 > 385 New 85 40 30 > 386 New 86 1 43 > 387 New 87 2 53 > 388 New 88 5 36 > 389 New 89 10 51 > 390 New 90 15 19 > ... > ... > > So I want to plot mean of variable burnin by variables model and h2. I > compute means with > > tmp <- as.data.frame(t(tapply(burnin, list(Model, h2), mean))) > > and table tmp looks like this > > Old New > 1 31.00 29.36 > 2 30.30 28.34 > 5 32.92 30.66 > 10 39.00 37.54 > 15 40.66 34.07 > 20 39.29 35.94 > 40 28.63 28.51 > > Now I want to launch something like > plot(tmp[, 0], Old) > points(tmp[, 0], New, pch = 20) > > and it gives me the error > > Error in pairs.default(x, ...) : non-numeric argument to pairs > > I guess that I am having problem with tmp[, 0]. If I useYes, R starts indexing with 1, but not with 0.> plot(Old) > points(New, pch = 20) > > I get the plot, but abscisa is numbered from 1 to 7 not 1, 2, 5, 10, 15, > 20 and 40. Does anyone have any sugestions?Omit the x axis at first (e.g. using argument xaxt="n") and add it with axis(2, ...) and correct labels afterwards. Uwe Ligges> I would also like to produce table like this, so plotting would be > easier, since there would be no need to use points() and/or lines() > commands to add another group. > > Model h2 mean > 1 Old 1 31.00 > 2 Old 2 30.30 > 3 Old 5 32.92 > 4 Old 10 39.00 > 5 Old 15 40.66 > 6 Old 20 39.29 > 7 Old 40 28.63 > 8 Old 1 29.36 > 9 Old 2 28.34 > 10 Old 5 30.66 > 11 Old 10 37.54 > 12 Old 15 34.07 > 13 Old 20 35.94 > 14 Old 40 28.51 > >