[英]Can't rename columns with dplyr
我正在嘗試從Characteristics..genotype.
基因型重命名數據框中的列Characteristics..genotype.
到genotype
和從Characteristics..age.
到age
:
pData(raw_data) %>%
rename(
age = Characteristics..age.,
genotype = Characteristics..genotype.
)
我收到以下錯誤:
重命名錯誤(.,年齡 = 特征..年齡。,基因型 = 特征..基因型。):對象“特征..年齡。” 未找到
這沒有意義,因為數據框中存在列:
pData(raw_data)$Characteristics..genotype.
以上輸出:
[1] N171-HD82Q N171-HD82Q N171-HD82Q wt wt N171-HD82Q N171-HD82Q N171-HD82Q wt wt
[12] 重量 N171-HD82Q N171-HD82Q N171-HD82Q 重量 重量 重量
級別: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.)
plyr::rename(., genotype = Characteristics..genotype.) 中的錯誤:
未使用的參數(基因型 = 特征..基因型。)
您可以使用rename_all
並使用rename_all
進行重命名,例如使用stringr::str_remove_all
刪除開頭或"."
所有"Characteristics.."
實例"."
最后(用\\\\
轉義的句點)。
library(tidyverse) # dplyr and stringr
df %>%
rename_all(str_remove_all, '^Characteristics\\.\\.|\\.$')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.