[英]Rename header in R with extracted information from the header
如何根據當前 header 中的信息重命名 R 中的 header?
我的 df 看起來像:
header:(索引;d__Bacteria.p__Actinobacteriota.c__Actinobacteria;d__Bacteria.p__Bacteroidota.c__Bacteroidia)
第 1 行:(BF13A;0;14572)
第 2 行:(BF13B;0;24215)
ETC
我想用分類信息 (d__Bacteria.) 重命名列,使其只有 c__ 之后的信息
header:(索引;放線菌;擬桿菌)
第 1 行:(BF13A;0;14572)
第 2 行:(BF13B;0;24215)
等等。
順便說一句,我的分類信息列多於兩列,因此此類解決方案也適用於更大的 df。
您可以使用tidyverse
重命名列。 像下面這樣的東西,
library(tidyverse)
df %>%
rename(
Actinobacteria = d__Bacteria.p__Actinobacteriota.c__Actinobacteria,
Bacteroidia = d__Bacteria.p__Bacteroidota.c__Bacteroidia
)
這也可以使用基本函數來完成
names(df)[names(df) == "d__Bacteria.p__Actinobacteriota.c__Actinobacteria"] <- "Actinobacteria"
names(df)[names(df) == "d__Bacteria.p__Bacteroidota.c__Bacteroidia"] <- "Bacteroidia"
您可以像這樣修改舊名稱,而不是設置新的列名
new_df <- df %>%
setNames(substring(names(.),regexpr(".c_", names(.)) + 4))
> colnames(new_df)
[1] "Actinobacteria" "Bacteroidia"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.