I have been working on the following code but keep getting an err message. My current thinking is that the problem is on the indexing but do not know how to fix it. Any help please? ungulate <- read.csv("Ungulate.csv",row.names=1) ungulate <- as.matrix(ungulate);colnames(ungulate)<-NULL;rownames(ungulate)<-NULL habitat <- read.csv("Ungulate_vegetation.csv") habitat <- habitat[,3] site.data <- read.csv("Ungulate_site.csv") site <- site.data$SiteId visit <- site.data$Visit date <- site.data$Date date <- matrix(date,nrow=20,ncol=7,byrow=TRUE) S <- dim(ungulate)[1] m <- 14 # number of augmented species G <- read.csv("Ungulate_group.csv") G <- G[,2] g <- rep(NA,length=m) G <- c(G,g) # combined list with actual and augmented data set so in this case 6 + 14 g <- length(table(G)) # habitat id Hab <- cbind(seq(1,20),habitat) #habitat types for 20 sties run from 2 to 4 hab <- matrix(NA,nrow=2,ncol=7) #creating placing values to be filled with values generated by the following loop for(i in 1:4){ hab[i,] <- Hab[habitat==i,1] } # want to use this loop to substitute NA by exact values as those found in the real data set which can be 2 to 4 but keep getting an error message saying Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zero Any help. Thanks Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zero -- View this message in context: http://r.789695.n4.nabble.com/replacement-has-length-zero-tp4635700.html Sent from the R help mailing list archive at Nabble.com.
Your request fails the reproducibility requirement from the posting guide, because you have not supplied enough data to run the code and reproduce the error. --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. fabiano <chimbioputo at gmail.com> wrote:>I have been working on the following code but keep getting an err >message. My >current thinking is that the problem is on the indexing but do not know >how >to fix it. Any help please? > >ungulate <- read.csv("Ungulate.csv",row.names=1) >ungulate <- >as.matrix(ungulate);colnames(ungulate)<-NULL;rownames(ungulate)<-NULL >habitat <- read.csv("Ungulate_vegetation.csv") >habitat <- habitat[,3] >site.data <- read.csv("Ungulate_site.csv") >site <- site.data$SiteId >visit <- site.data$Visit >date <- site.data$Date >date <- matrix(date,nrow=20,ncol=7,byrow=TRUE) >S <- dim(ungulate)[1] >m <- 14 # number of augmented species >G <- read.csv("Ungulate_group.csv") >G <- G[,2] >g <- rep(NA,length=m) >G <- c(G,g) # combined list with actual and augmented data set so in >this >case 6 + 14 >g <- length(table(G)) ># habitat id >Hab <- cbind(seq(1,20),habitat) #habitat types for 20 sties run from 2 >to 4 > >hab <- matrix(NA,nrow=2,ncol=7) #creating placing values to be >filled >with values generated by the following loop >for(i in 1:4){ > hab[i,] <- Hab[habitat==i,1] } # want to use this loop to >substitute NA >by exact values as those found in the real data set which can be 2 to 4 >but >keep getting an error message saying > >Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zero > >Any help. Thanks >Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zero > >-- >View this message in context: >http://r.789695.n4.nabble.com/replacement-has-length-zero-tp4635700.html >Sent from the R help mailing list archive at Nabble.com. > >______________________________________________ >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.
On 2012-07-07 03:19, fabiano wrote:> I have been working on the following code but keep getting an err message. My > current thinking is that the problem is on the indexing but do not know how > to fix it. Any help please? > > ungulate <- read.csv("Ungulate.csv",row.names=1) > ungulate <- > as.matrix(ungulate);colnames(ungulate)<-NULL;rownames(ungulate)<-NULL > habitat <- read.csv("Ungulate_vegetation.csv") > habitat <- habitat[,3] > site.data <- read.csv("Ungulate_site.csv") > site <- site.data$SiteId > visit <- site.data$Visit > date <- site.data$Date > date <- matrix(date,nrow=20,ncol=7,byrow=TRUE) > S <- dim(ungulate)[1] > m <- 14 # number of augmented species > G <- read.csv("Ungulate_group.csv") > G <- G[,2] > g <- rep(NA,length=m) > G <- c(G,g) # combined list with actual and augmented data set so in this > case 6 + 14 > g <- length(table(G)) > # habitat id > Hab <- cbind(seq(1,20),habitat) #habitat types for 20 sties run from 2 to 4 > > hab <- matrix(NA,nrow=2,ncol=7) #creating placing values to be filled > with values generated by the following loop > for(i in 1:4){ > hab[i,] <- Hab[habitat==i,1] } # want to use this loop to substitute NA > by exact values as those found in the real data set which can be 2 to 4 but > keep getting an error message saying > > Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zeroHave you taken a look at just what 'Hab' and 'habitat' contain? It looks to me that 'habitat' is not a set of integers which it would have to be to get habitat==i to be TRUE. I guess that Hab[habitat==i, 1] is the empty set (hence 'length zero'). Peter Ehlers> > Any help. Thanks > Error in hab[i, ] <- Hab[habitat == i, 1] : replacement has length zero > > -- > View this message in context: http://r.789695.n4.nabble.com/replacement-has-length-zero-tp4635700.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >
Thanks Peter. We had a look at both Hab and habitat. These are integers representing habitat types. habitat <- read.csv("Ungulate_vegetation.csv") habitat <- habitat[,3] habitat [1] 3 3 4 3 3 3 4 4 3 3 3 3 3 4 2 3 2 3 2 3 Hab <- cbind(seq(1,20),habitat) Hab habitat [1,] 1 3 [2,] 2 3 [3,] 3 4 [4,] 4 3 [5,] 5 3 [6,] 6 3 [7,] 7 4 [8,] 8 4 [9,] 9 3 [10,] 10 3 [11,] 11 3 [12,] 12 3 [13,] 13 3 [14,] 14 4 [15,] 15 2 [16,] 16 3 [17,] 17 2 [18,] 18 3 [19,] 19 2 [20,] 20 3 hab [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] NA NA NA NA NA NA NA [2,] NA NA NA NA NA NA NA for(i in 1:2){ hab[i, ] <- Hab[habitat==i,1] } The idea is to assign habitat types to hab. Thanks -- View this message in context: http://r.789695.n4.nabble.com/replacement-has-length-zero-tp4635700p4635777.html Sent from the R help mailing list archive at Nabble.com.
Thanks Peter. We did manage to solve the problem using the approach bellow. Hab <- cbind(seq(1,21),habitat) hab <- matrix(NA,nrow=3,ncol=7) for (i in 1:3) {hab[i,] <- Hab[habitat==i,1]} The problem was that the hab matrix was not a multiple of habitat. -- View this message in context: http://r.789695.n4.nabble.com/replacement-has-length-zero-tp4635700p4636156.html Sent from the R help mailing list archive at Nabble.com.