[R] looping through a data frame

Ivan Baxter ibaxter at purdue.edu
Fri Jun 23 20:38:08 CEST 2006

Hi- I am having trouble with the syntax of  looping through  the rows 
and columns of a data frame.

I have a table with 17 observations for 84 lines at n=5-10 per line. So 
the table is ~700x17.

I want to pull out the median and stdev for each line and put it in a 
dataframe with rowname = linename.

So I have tried the following....
#read in the table
input.table <- read.table(file =  "First_run_all.txt", header = T)
#pull out the line names
line.run <- unique(input.table$Line)
#pull out the column names except for Line
el.names <- names(input.table[2:18])

#now I want to calculate the median for each line for each column. The 
code below would work for a matrix
calc.frame.med <- matrix(ncol = length(el.names), nrow = 
length(line.run), dimnames = list(line.run,el.names))
for(i in 1:length(el.names)){
    for(j in 1:length(line.run)){
       calc.frame.med[j,i] <- median(input.table[input.table$Line == 

#however, it won't allow me to pull stuff out based on the row names 
will it?
batch1.med <- calc.frame.med[rownames(calc.frame.med) == batch1,]
#doesn't work.
#It seems like I want to create the data as a matrix and then be able to 
treat it like a data.frame.

can anyone set me straight on the right way to do this?



Ivan Baxter
Research Scientist
Bindley Bioscience Center
Purdue University
ibaxter at purdue.edu

More information about the R-help mailing list