Dear list,

I couldn't find a solution for this problem online, as simple as it seems.
Here's the problem:


#Construct test dataframe
tf <- data.frame(1:3,4:6,c("A","A","A"))

#Try the apply function I'm trying to use
test <- apply(tf,2,function(x) if(is.numeric(x)) mean(x) else unique(x)[1])

#Look at the output--all columns treated as character columns...
test

#Look at the format of the original data--the first two columns are
integers.
str(tf)


In general terms, I want to differentiate what function I apply over a
row/column based on what type of data that row/column contains. Here I want
a simple mean if the column is numeric, and the first unique value if the
column is a character column. As you can see, 'apply' treats all columns as
characters the way I've written his function.

Any thoughts? Many thanks in advance,
Aaron

	[[alternative HTML version deleted]]

