在名为“.”的变量上使用 dplyr 函数

Using dplyr functions on variables named "."

有时从列表生成数据框时,变量名为“.”默认。如果只是将变量名称更改为更合适的名称,我如何在 dplyr 函数中引用此变量。

# Code that produces my data frame with "." as column name
library(tidyverse)

d <- data.frame(`.` = 1, row.names = "a") 

# Now my code fails because `.` is a poor column name for dplyr functions:
d %>% select(model = rownames(.), outlier = `.`)

这实际上不是名为 的列的问题。引用 select() 中的行名有问题,请参阅

d <- data.frame(test = 1, row.names = "a")
d %>% select(model = rownames(.), outlier = test)

还是returnsError: Strings must match column names. Unknown columns: a

只需使用

d <- data.frame(`.` = 1, row.names = "a") 
d %>% select(outlier = '.')

将列重命名为异常值

给定

d <- data.frame(`.` = 1, row.names = "a") 

基础 R 解决方案

colnames(d) <- 'newname'

Dplyr 解决方案

d %>% rename(newname = '.')