[R] looping through columns in a matrix or data frame

arun smartpink111 at yahoo.com
Wed Jan 1 22:35:53 CET 2014


Hi,
May be this helps:

Using your function:
mapply(less,test,4)

#or
 invisible(mapply(less,test,4))
#[1] 2 3
#[1] 3

#or

 for(i in 1:ncol(test)){
 less(test[,i],4)}
#[1] 2 3
#[1] 3


A.K.



Hi, I'm trying to figure out how to loop through columns in a matrix or 
data frame, but what I've been finding online has not been very clear. 
I've written the following simple function that I can use on a column to extract all values that are less than a specified number. Consider the 
following example using that function to extract all values less than 4 
from column1 of the table "test" 

> less <- function(x,y){print(x[which(x < y)])} 

> test 
  column1 column2 
1       2       3 
2       3       4 
3       4       5 

> less(test[,1],4) 
[1] 2 3 


What I want to do is loop that function over all the columns
 in the table. Note: I realize that this is a silly example and there 
are better ways to do this particular function in R, so please don't 
respond with better ways to extract values less than a given number. The
 question that I am interested in is merely how do I loop over the 
columns. If you could respond by modifying my silly function so that it 
will loop, that would be the most helpful response. Thanks for the 
advice!



More information about the R-help mailing list