On Sat, Jul 4, 2009 at 5:22 PM, jim holtman<jholt...@gmail.com> wrote: > See if this example helps; show how to either plot the row or columns > of a data frame: > >> test <- data.frame(C1=runif(10), C2=runif(10), C3=runif(10)) >> test > C1 C2 C3 > 1 0.91287592 0.3390729 0.4346595 > 2 0.29360337 0.8394404 0.7125147 > 3 0.45906573 0.3466835 0.3999944 > 4 0.33239467 0.3337749 0.3253522 > 5 0.65087047 0.4763512 0.7570871 > 6 0.25801678 0.8921983 0.2026923 > 7 0.47854525 0.8643395 0.7111212 > 8 0.76631067 0.3899895 0.1216919 > 9 0.08424691 0.7773207 0.2454885 > 10 0.87532133 0.9606180 0.1433044 >> # this will plot each column (C1, C2, C3) >> matplot(test, type='o') >> # plot each row >> matplot(t(test), type='o') > > > On Sat, Jul 4, 2009 at 8:02 PM, Mark Knecht<markkne...@gmail.com> wrote: >> OK, I guess I'm getting better at the data part of R. I wrote a >> program outside of R this morning to dump a bunch of experimental >> data. It's a sort of ragged array - about 700 rows and 400 columns, >> but the amount of data in each column varies based on the length of >> the experiment. The real data ends with a 0 following some non-zero >> value. It might be as short as 5 to 10 columns or as many as 390. The >> first 9 columns contain some data about when the experiment was run >> and a few other things I thought I might be interested in later. All >> the data starts in column 10 and has headers saying C1, C2, C3, C4, >> etc., up to C390 The first value for every experiment is some value I >> will normalize and then the values following are above and below the >> original tracing out the path that the experiment took, ending >> somewhere to the right but not a fixed number of readings. >> >> R reads it in fine and it looks good so far. >> >> Now, what I thought I might do with R is plot all 700 rows as >> individual lines, giving them some color based on info in columns 1-9, >> but suddenly I'm lost again in plots which I think should be fairly >> easy. How would I go about creating a plot for even one line, much >> less all of them? I don't have a row with 1,2,3,4 to us as the X axis >> values. I could go back and put one in the data but then I don't think >> that should really be required, or I could go back and make the >> headers for the whole array 1:400 and then plot from 10:400 but I >> thought I read that headers cannot start with numbers. >> >> Maybe the X axis values for a plot can actually be non-numeric C1, C2, >> C3, C4, etc and I could use line (C1,0) to (C2,5) and so on? Or maybe >> I should strip the C from C1 and be left with 1? Maybe the best thing >> is to copy the data for one line to another data.frame or array and >> then plot that? >> >> Just sort of lost looking at help files. Thanks for any ideas you can >> send along. Ask questions if I didn't explain my problem well enough. >> Not looking for anyone to do my work, just trying to get the concepts >> right >> >> Cheers, >> Mark >> >> ______________________________________________ >> 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. >> > > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390
Hey Jim, Thanks for the pointers on matplot. I suspect that will be useful one of these days. I'm attaching a little code to make a test case closer to what I have to deal with at the bottom. My problem with your data was that you plot everything. In my data I need to plot only a portion of it, and in the array not every cell is valid - I don't want to plot cells that have 0.00 as a value. In the array 'test' I need to plot the general area defined by C1:C6, each row as a line, but stop plotting each row when I run into a 0. Keep in mind that I don't know what column C1 starts in. It is likely to change over time. I think the root cause of a number of my coding problems in R right now is my lack of skills in reading and grabbing portions of the data out of arrays. I'm new at this. (And not a programmer) I need to find some good examples to read and test on that subject. If I could locate which column was called C1, then read row 3 from C1 up to the last value before a 0, I'd have proper data to plot for one line. Repeat as necessary through the array and I get all the lines. Doing the lines one at a time should allow me the opportunity to apply color or not plot based on values in the first few columns. Thanks, Mark test <- data.frame(A=1:10, B=100, C1=runif(10), C2=runif(10), C3=runif(10), C4=runif(10), C5=runif(10), C6=runif(10)) test<-round(test,2) #Make array ragged test$C3[2]<-0;test$C4[2]<-0;test$C5[2]<-0;test$C6[2]<-0 test$C4[3]<-0;test$C5[3]<-0;test$C6[3]<-0 test$C6[7]<-0 test$C4[8]<-0;test$C5[8]<-0;test$C6[8]<-0 #Print array test ______________________________________________ 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.