With further fooling around, I realized that explicitly assigning my last "solution" 'works'; i.e.
names(z)[2] <- "foo" can be piped as: z <- z |>(\(x) "names<-"(x,value = "[<-"(names(x),2,'foo')))() > z a foo 1 1 a 2 2 b 3 3 c This is even awfuller than before. So my query still stands. -- Bert On Sat, Jul 20, 2024 at 1:14 PM Bert Gunter <bgunter.4...@gmail.com> wrote: > > Nope, I still got it wrong: None of my approaches work. :( > > So my query remains: how to do it via piping with |> ? > > Bert > > > On Sat, Jul 20, 2024 at 1:06 PM Bert Gunter <bgunter.4...@gmail.com> wrote: > > > > This post is likely pretty useless; it is motivated by a recent post > > from "Val" that was elegantly answered using Tidyverse constructs, but > > I wondered how to do it using base R only. Along the way, I ran into > > the following question to which I think my answer (below) is pretty > > awful. I would be interested in more elegant base R approaches. So... > > > > z <- data.frame(a = 1:3, b = letters[1:3]) > > > z > > a h > > 1 1 a > > 2 2 b > > 3 3 c > > > > Suppose I want to change the name of the second column of z from 'b' > > to 'foo' . This is very easy using nested function syntax by: > > > > names(z)[2] <- "foo" > > > z > > a foo > > 1 1 a > > 2 2 b > > 3 3 c > > > > Now suppose I wanted to do this using |> syntax, along the lines of: > > > > z |> names()[2] <- "foo" ## throws an error > > > > Slightly fancier is: > > > > z |> (\(x)names(x)[2] <- "b")() > > ## does nothing, but does not throw an error. > > > > However, the following, which resulted from a more careful read of > > ?names works (after changing the name of the second column back to "b" > > of course): > > > > z |>(\(x) "names<-"(x,value = "[<-"(names(x),2,'foo')))() > > >z > > a foo > > 1 1 a > > 2 2 b > > 3 3 c > > > > This qualifies to me as "pretty awful." I'm sure there are better ways > > to do this using pipe syntax, so I would appreciate any better > > approaches. > > > > Best, > > Bert ______________________________________________ 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.