It's the other way around. You are trying to replace 10 elements (x[i]) with 20 elements (y). R makes a "best guess" as to how you want to do that. 10 is not a multiple of 20.
If you were trying to replace 20 elements with 10, then R would recycle them because 20 _is_ a multiple of 10. The safest course is always to make sure you are replacing with equal numbers. Sarah On Thu, Jan 15, 2009 at 1:20 PM, <rkevinbur...@charter.net> wrote: > This was just an illustration. It is the warning message that I don't > understand. The warning says "number of items to replace is not a multiple of > replacement length". The way I look at it 10 is a multiple of 20. > > Kevin > > ---- Sarah Goslee <sarah.gos...@gmail.com> wrote: >> The lengths are different, particularly the length of subsetted x[i] >> >> > x <- 1:20 >> > i <- x %% 2 > 0 >> > y <- rep(1,20) >> >> > length(x) >> [1] 20 >> > length(i) >> [1] 20 >> > length(x[i]) >> [1] 10 >> > length(y) >> [1] 20 >> >> You happened to be lucky and got what you wanted, but a more reliable >> approach is: >> >> > x[i] <- y[i] >> >> Sarah >> >> On Thu, Jan 15, 2009 at 1:08 PM, <rkevinbur...@charter.net> wrote: >> > I have a question on whether a warning message is valid or if I just don't >> > understand the process. Let me illustrate via some R code: >> > >> > x <- 1:20 >> > i <- x %% 2 > 0 >> > y <- rep(1,20) >> > >> > x[i] <- y >> > Warning message: >> > In x[i] <- y : >> > number of items to replace is not a multiple of replacement length >> > >> > But it still does what I would expect for the assignment: >> > >> >> x >> > [1] 1 2 1 4 1 6 1 8 1 10 1 12 1 14 1 16 1 18 1 20 >> >> >> > >> > What don't I understand? >> > >> > Thank you. >> > >> > Kevin >> > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ R-help@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.