无法使用 dplyr 重命名列
Can't rename columns with dplyr
我正在尝试将数据框中的列从 Characteristics..genotype.
重命名为 genotype
以及从 Characteristics..age.
重命名为 age
:
pData(raw_data) %>%
rename(
age = Characteristics..age.,
genotype = Characteristics..genotype.
)
我收到以下错误:
Error in rename(., age = Characteristics..age., genotype = Characteristics..genotype.) : object 'Characteristics..age.' not found
这没有意义,因为数据框中存在列:
pData(raw_data)$Characteristics..genotype.
上面的输出:
[1] N171-HD82Q N171-HD82Q N171-HD82Q wt wt wt N171-HD82Q N171-HD82Q N171-HD82Q wt wt
[12] wt N171-HD82Q N171-HD82Q N171-HD82Q wt wt wt
Levels: N171-HD82Q wt
我错过了什么?
一个选项是反引号
library(dplyr)
pData(raw_data) %>%
rename(
age = `Characteristics..age.`,
genotype = `Characteristics..genotype.`
)
或者根据错误(用plyr::rename
转载),最好用::
指定加载的包,避免被屏蔽
pData(raw_data) %>%
dplyr::rename(
age = Characteristics..age.,
genotype = Characteristics..genotype.
)
但是,在 dplyr_0.8.3
上进行测试时,它在没有反引号的情况下工作正常
data(mtcars)
raw_data <- head(mtcars)
names(raw_data)[1] <- "Characteristics..genotype."
raw_data %>%
dplyr::rename(genotype = Characteristics..genotype.)
# genotype cyl disp hp drat wt qsec vs am gear carb
# ...
问题是 plyr
也包含相同的 rename
函数,因此如果包也被加载,它可能会掩盖 dplyr::rename
raw_data %>%
plyr::rename(genotype = Characteristics..genotype.)
Error in plyr::rename(., genotype = Characteristics..genotype.) :
unused argument (genotype = Characteristics..genotype.)
您可以使用 rename_all
并使用函数进行重命名,例如使用 stringr::str_remove_all
删除开头的 "Characteristics.."
或结尾的 "."
的所有实例(使用 \
转义的句点)。
library(tidyverse) # dplyr and stringr
df %>%
rename_all(str_remove_all, '^Characteristics\.\.|\.$')
我正在尝试将数据框中的列从 Characteristics..genotype.
重命名为 genotype
以及从 Characteristics..age.
重命名为 age
:
pData(raw_data) %>%
rename(
age = Characteristics..age.,
genotype = Characteristics..genotype.
)
我收到以下错误:
Error in rename(., age = Characteristics..age., genotype = Characteristics..genotype.) : object 'Characteristics..age.' not found
这没有意义,因为数据框中存在列:
pData(raw_data)$Characteristics..genotype.
上面的输出:
[1] N171-HD82Q N171-HD82Q N171-HD82Q wt wt wt N171-HD82Q N171-HD82Q N171-HD82Q wt wt
[12] wt N171-HD82Q N171-HD82Q N171-HD82Q wt wt wt
Levels: N171-HD82Q wt
我错过了什么?
一个选项是反引号
library(dplyr)
pData(raw_data) %>%
rename(
age = `Characteristics..age.`,
genotype = `Characteristics..genotype.`
)
或者根据错误(用plyr::rename
转载),最好用::
指定加载的包,避免被屏蔽
pData(raw_data) %>%
dplyr::rename(
age = Characteristics..age.,
genotype = Characteristics..genotype.
)
但是,在 dplyr_0.8.3
上进行测试时,它在没有反引号的情况下工作正常
data(mtcars)
raw_data <- head(mtcars)
names(raw_data)[1] <- "Characteristics..genotype."
raw_data %>%
dplyr::rename(genotype = Characteristics..genotype.)
# genotype cyl disp hp drat wt qsec vs am gear carb
# ...
问题是 plyr
也包含相同的 rename
函数,因此如果包也被加载,它可能会掩盖 dplyr::rename
raw_data %>%
plyr::rename(genotype = Characteristics..genotype.)
Error in plyr::rename(., genotype = Characteristics..genotype.) :
unused argument (genotype = Characteristics..genotype.)
您可以使用 rename_all
并使用函数进行重命名,例如使用 stringr::str_remove_all
删除开头的 "Characteristics.."
或结尾的 "."
的所有实例(使用 \
转义的句点)。
library(tidyverse) # dplyr and stringr
df %>%
rename_all(str_remove_all, '^Characteristics\.\.|\.$')