首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >str_split_fixed替换行名

str_split_fixed替换行名
EN

Stack Overflow用户
提问于 2022-11-22 20:56:17
回答 1查看 17关注 0票数 0

我使用str_split_fixed()来分离分类法I,这很好。但是,结果数据集有新的行名(1:nrow),但我需要原始行名。

我的原始数据集示例:

代码语言:javascript
复制
> dput(tax.example)
structure(list(phylodist = c("Archaea;Candidatus_Diapherotrites;unclassified_Candidatus_Diapherotrites;unclassified_Candidatus_Diapherotrites;unclassified_Candidatus_Diapherotrites;Candidatus_Iainarchaeum;Candidatus_Iainarchaeum_andersonii;Candidatus_Iainarchaeum_andersonii_SCGC_AAA011-E11_(contamination_screened)", 
"Archaea;Candidatus_Korarchaeota;unclassified_Candidatus_Korarchaeota;unclassified_Candidatus_Korarchaeota;unclassified_Candidatus_Korarchaeota;Candidatus_Korarchaeum;Candidatus_Korarchaeum_cryptofilum;Candidatus_Korarchaeum_cryptofilum_OPF8", 
"Archaea;Candidatus_Micrarchaeota;unclassified_Candidatus_Micrarchaeota;unclassified_Candidatus_Micrarchaeota;unclassified_Candidatus_Micrarchaeota;Candidatus_Mancarchaeum;Candidatus_Mancarchaeum_acidiphilum;Candidatus_Mancarchaeum_acidiphilum_Mia14", 
"Archaea;Candidatus_Thermoplasmatota;Candidatus_Poseidoniia;Candidatus_Poseidoniales;unclassified_Candidatus_Poseidoniales;unclassified_Candidatus_Poseidoniales;uncultured_Candidatus_Poseidoniales_archaeon;Candidatus_Poseidoniales_archaeon_AHCG", 
"Archaea;Candidatus_Thermoplasmatota;Thermoplasmata;Methanomassiliicoccales;Candidatus_Methanomethylophilaceae;Candidatus_Methanomethylophilus;Candidatus_Methanomethylophilus_sp._1R26;Candidatus_Methanomethylophilus_sp._1R26"
)), row.names = c("phylo1", "phylo2", "phylo3", "phylo4", "phylo5"
), class = "data.frame")

然后我申请

代码语言:javascript
复制
tax.example <- data.frame(str_split_fixed(tax.example$phylodist,";",8))

来分离分类群的ID。但是,输出文件(下面)有简单的1:5行名。关于如何保留phylo1的任何想法..。phylo5?提亚

代码语言:javascript
复制
> dput(tax.example)
structure(list(X1 = c("Archaea", "Archaea", "Archaea", "Archaea", 
"Archaea"), X2 = c("Candidatus_Diapherotrites", "Candidatus_Korarchaeota", 
"Candidatus_Micrarchaeota", "Candidatus_Thermoplasmatota", "Candidatus_Thermoplasmatota"
), X3 = c("unclassified_Candidatus_Diapherotrites", "unclassified_Candidatus_Korarchaeota", 
"unclassified_Candidatus_Micrarchaeota", "Candidatus_Poseidoniia", 
"Thermoplasmata"), X4 = c("unclassified_Candidatus_Diapherotrites", 
"unclassified_Candidatus_Korarchaeota", "unclassified_Candidatus_Micrarchaeota", 
"Candidatus_Poseidoniales", "Methanomassiliicoccales"), X5 = c("unclassified_Candidatus_Diapherotrites", 
"unclassified_Candidatus_Korarchaeota", "unclassified_Candidatus_Micrarchaeota", 
"unclassified_Candidatus_Poseidoniales", "Candidatus_Methanomethylophilaceae"
), X6 = c("Candidatus_Iainarchaeum", "Candidatus_Korarchaeum", 
"Candidatus_Mancarchaeum", "unclassified_Candidatus_Poseidoniales", 
"Candidatus_Methanomethylophilus"), X7 = c("Candidatus_Iainarchaeum_andersonii", 
"Candidatus_Korarchaeum_cryptofilum", "Candidatus_Mancarchaeum_acidiphilum", 
"uncultured_Candidatus_Poseidoniales_archaeon", "Candidatus_Methanomethylophilus_sp._1R26"
), X8 = c("Candidatus_Iainarchaeum_andersonii_SCGC_AAA011-E11_(contamination_screened)", 
"Candidatus_Korarchaeum_cryptofilum_OPF8", "Candidatus_Mancarchaeum_acidiphilum_Mia14", 
"Candidatus_Poseidoniales_archaeon_AHCG", "Candidatus_Methanomethylophilus_sp._1R26"
)), class = "data.frame", row.names = c(NA, -5L))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-22 21:05:12

在设置新的data.frame时,可以通过从原始数据集中获取行名属性来保留原始行名。

代码语言:javascript
复制
attributes(df)$row.names
[1] "phylo1" "phylo2" "phylo3" "phylo4" "phylo5"

data.frame(str_split_fixed(df$phylodist,";",8), 
           row.names = attributes(df)$row.names)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74538859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档