[R] Warning on assignment.

Sarah Goslee sarah.goslee at gmail.com
Thu Jan 15 19:12:47 CET 2009


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,  <rkevinburton at 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




More information about the R-help mailing list