1、创建以下两个向量:Archaea <- c(“Crenarchaea”, “Euryarchaea”) ,Bacteria <- c(“Cyanobacteria”, “Spirochaetes”, “Acidobacteria”) 。(a) 创建一个名为TreeOfLife的列表,以便可以使用TreeOfLife$Archaea来打印相应的组。(b) 通过添加以下向量更新TreeOfLife:Eukaryotes <- c(“Alveolates”, “Cercozoa”, “Plants”, “Opisthokonts”) ,它应与Archaea和Bacteria处于同一级别。(c) 通过添加“Actinobacteria”更新Archaea。(d) 打印所有最低级别的分类单元。
以下是对应的R代码实现:
# 创建向量
Archaea <- c("Crenarchaea", "Euryarchaea")
Bacteria <- c("Cyanobacteria", "Spirochaetes", "Acidobacteria")
# (a) 创建列表TreeOfLife
TreeOfLife <- list(Archaea = Archaea, Bacteria = Bacteria)
# (b) 更新TreeOfLife,添加Eukaryotes
Eukaryotes <- c("Alveolates", "Cercozoa", "Plants", "Opisthokonts")
TreeOfLife$Eukaryotes <- Eukaryotes
# (c) 更新Archaea,添加Actinobacteria
TreeOfLife$Archaea <- c(TreeOfLife$Archaea, "Actinobacteria")
# (d) 打印所有最低级别的分类单元
lowest_level_taxa <- unlist(TreeOfLife)
print(lowest_level_taxa)
2、创建一棵有10个叶节点的随机树。(a) 提取分支长度,并将其存储在一个向量中。(b) 删除分支长度,并绘制该树。(c) 从均匀分布U[0, 10]中赋予新的随机分支长度。以适用于任意数量叶节点的方式进行此操作。(d) 恢复树的原始分支长度。
以下是使用R语言实现上述要求的代码示例:
# 加载ape包
library(ape)
# 创建一棵有10个叶节点的随机树
tree <- rtree(10)
# (a) 提取分支长度,并将其存储在一个向量中
original_branch_lengths <- tree$edge.length
# (b) 删除分支长度,并绘制该树
no_length_tree <- tree
no_length_tree$edge.length <- NULL
plot(no_length_tree)
# (c) 从均匀分布U[0, 10]中赋予新的随机分支长度。以适用于任意数量叶节点的方式进行此操作
new_branch_lengths <- runif(length(tree$edge.length), 0, 10)
tree$edge.length <- new_branch_lengths
# (d) 恢复树的原始分支长度
tree$edge.length <- original_branch_lengths

最低0.47元/天 解锁文章
8

被折叠的 条评论
为什么被折叠?



