Got it, thank you! On Tue, 10 Aug 2021, 00:12 David Winsemius, <dwinsem...@comcast.net> wrote:
> > On 8/9/21 12:22 PM, Luigi Marongiu wrote: > > Thank you! it worked fine! The only pitfall is that `NA` became > > `<NA>`. This is essentially the same thing anyway... > > > It's not "essentially the same thing". It IS the same thing. The print > function displays those '<>' characters flanking NA's when the class is > factor. Type this at your console: > > > factor(NA) > > > -- > > David > > > > > On Mon, Aug 9, 2021 at 5:18 PM Ivan Krylov <krylov.r...@gmail.com> > wrote: > >> Thanks for providing a reproducible example! > >> > >> On Mon, 9 Aug 2021 15:33:53 +0200 > >> Luigi Marongiu <marongiu.lu...@gmail.com> wrote: > >> > >>> df[df[['vect[2]']] == 2, 'vect[2]'] <- "No" > >> Please don't quote R expressions that you want to evaluate. 'vect[2]' > >> is just a string, like 'hello world' or 'I want to create a new column > >> named "vect[2]" instead of accessing the second one'. > >> > >>> Error in `[<-.data.frame`(`*tmp*`, df[[vect[2]]] == 2, vect[2], value > >>> = "No") : missing values are not allowed in subscripted assignments > >>> of data frames > >> Since df[[2]] containts NAs, comparisons with it also contain NAs. While > >> it's possible to subset data.frames with NAs (the rows corresponding to > >> the NAs are returned filled with NAs of corresponding types), > >> assignment to undefined rows is not allowed. A simple way to remove the > >> NAs and only leave the cases where df[[vect[2]]] == 2 is TRUE would be > >> to use which(). Compare: > >> > >> df[df[[vect[2]]] == 2,] > >> df[which(df[[vect[2]]] == 2),] > >> > >> -- > >> Best regards, > >> Ivan > > > > > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.