Re: [R] Problems with apply

From: Ivan Calandra <ivan.calandra_at_uni-hamburg.de>
Date: Mon, 31 May 2010 18:46:07 +0200

Hi,

Here is what ?apply says:
"Returns a vector or array or list of values obtained by applying a function to margins of an array."

So apply() works on arrays, not on dataframes! Maybe lapply() would do what you're looking for (don't have time to look more into it) And you don't do "exactly the same with a for" because xx is a matrix (a matrix is a 2-dimensional array, dataframes are lists)

HTH,
Ivan

PS: I don't see any data attached. Think about using dput(), it's great ;)

Le 5/31/2010 17:16, Luis Felipe Parra a écrit :
> Hello I am tryin to use the apply functions with two data frames I've got
> and I am getting the following error message
>
> Error en HistRio$SecSte : $ operator is invalid for atomic vectors
>
> I don't understand why. when I use the apply I am doing:
>
> PromP<- function(HistRio,AnaQuim){
> xx<- c(0,0,0)
> if(length(which(AnaQuim$SecSte==HistRio$SecSte))>0){ xx[1]<-1 }
> if(length(which(as.Date(AnaQuim$AÑO1)<=as.Date(HistRio$FinCorte)))>0){ xx[2]
> <- 1}
> if( length(which(as.Date(AnaQuim$AÑO1)>=as.Date(HistRio$FechaSiembra)))>0){
> xx[3]<-1 }
> if( length(which(as.Date(AnaQuim$AÑO1)>=as.Date(HistRio$FechaSiembra)))>0&
> length(which(as.Date(AnaQuim$AÑO1)<=as.Date(HistRio$FinCorte)))>0 ){ xx[4]
> <- 2}
> return(xx)
> }
> zz<- apply(HistRio,1,PromP,AnaQuim)
> and if I do exactly the same with a for
>
> xx<- matrix(0,nrow(HistRio),4)
> for(i in 1:nrow(HistRio)){
> if(length(which(AnaQuim$SecSte==HistRio$SecSte[i]))>0){ xx[1]<-1 }
> if(length(which(as.Date(AnaQuim$AÑO1)<=as.Date(HistRio$FinCorte[i])))>0){
> xx[2]<- 1}
> if(
> length(which(as.Date(AnaQuim$AÑO1)>=as.Date(HistRio$FechaSiembra[i])))>0){
> xx[3]<-1 }
> if( length(which(as.Date(AnaQuim$AÑO1)>=as.Date(HistRio$FechaSiembra[i])))>0
> & length(which(as.Date(AnaQuim$AÑO1)<=as.Date(HistRio$FinCorte[i])))>0 ){
> xx[4]<- 2}
> }
>
> I get no error message. Attached is the data I am using. Any idea of why
> this is happening?
>
> Thank you
>
> Felipe Parra
>
>
>
> ______________________________________________
> R-help_at_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.
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra_at_uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/mitarbeiter.php


	[[alternative HTML version deleted]]



______________________________________________ R-help_at_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.

Received on Mon 31 May 2010 - 16:53:30 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 31 May 2010 - 17:00:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive