setNames 等效于在管道中使用的 colnames 和 rownames

setNames equivalent for colnames and rownames for use in pipe

我经常在 magrittr 管道或其他地方使用 R 的 setNames 函数来即时修复对象的名称:

library(magrittr)
mytable %>% setNames(c("col1", "col2", "col3")) %>% ...[more analysis]

colnames 和 rownames 是否有等效的函数?类似于 setColnames?

它不漂亮,但以下作品:

mytable %>% `colnames<-`(c("col1", "col2", "col3")) %>% ...[more analysis]

这利用了这样一个事实,即形式为 colnames(x) <- foo 的赋值实际上是在调用函数 `colnames<-`(x, foo)。名称周围的反引号是必要的,因为 colnames<- 通常不是 R 中的有效标识符(但在反引号之间它是)。

所以你不需要任何别名。

magrittr提供了几个"aliases"(见??Aliases),包括set_colnames(相当于`colnames<-`)和set_rownames(相当于`rownames<-`).