thank you. Yes, x must be a unique identifier. I think the line I was
looking for is essentially `df2 <- df1[ix, c("x","z")]` or even better
`merge(df2, df1, by="x", sort=FALSE)[,c("x","z")]` which allows me to
directly assign the value of one column based on the intersection with
another data frame.On Tue, Jan 20, 2026 at 11:53 AM Peter Dalgaard <[email protected]> wrote: > > What are you actually trying to do here? For the example you give, I would > just sample the index and apply it to both vectors: > > ix <- sample(1:20, 5) > df2 <-data.frame(x=df1$x[ix], z=df1$z[ix]) > > (or even df2 <- df1[ix, c("x","z")] ) > > If it is something else, you are trying to achieve, it would seem that you > rely on df1$x not having duplicates or you might have an assignment between > incompatible vectors in the for loop. > > -pd > > > On 20 Jan 2026, at 11.25, Luigi Marongiu <[email protected]> wrote: > > > > Dear all, > > this is a basic question but I could not find a specific answer online. > > I have a dataframe (df1) with, in particular, an identification value > > `x` and an output value `z`. > > I also have another dataframe (df2) that shares `x`. > > I need to assign `z` to df2 where df1$x is equal to df2$x. > > What would be a straightforward way of doing this? > > I can do it, but selecting one element at a time, checking the > > identity of the x elements, and then assigning z. There should be a > > more R way... > > Thank you > > > > > > ``` > > df1 = data.frame(x = 1:20, > > y = rep(letters[1:5],4), > > w = c(rep(LETTERS[1],10), rep(LETTERS[2],10)), > > z = rnorm(20), > > stringsAsFactors = FALSE) > > df2 = data.frame(x = sample(df1$x, 5)) > > df2$z = NA > > for (i in df1$x) { > > df2$z[df2$x==i] = df1[df1$x==i,]$z > > } > > ``` > > > > ______________________________________________ > > [email protected] mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > > https://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: [email protected] Priv: [email protected] > -- Best regards, Luigi ______________________________________________ [email protected] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

