【发布时间】:2021-09-02 07:12:14
【问题描述】:
我有一个来自不同门类和类别的样本数据集(mags),我想对其进行排序。 首先,我创建了一个空列表,其中包含与我拥有的不同门一样多的空数据框。 原则上这是可行的,但已经可以在输出中看到问题。
Phylum <- c("a", "b", "c", "d")
Mags <- data.frame(Phylum=c("a", "a", "b", "c", "d", "d", "d"),
Class=c("A1", "A2", "B1", "C1", "D1", "D2", "D3"))
erg <- list()
for (i in length(Phylum)) {
erg[[i]] <- data.frame(i)
}
names(erg) <- Phylum
之后,我想对样本进行排序。哪个门包含哪些类。 类应该写入数据框,而每个门在列表中都有自己的数据框。
for (i in length(Phylum)){
erg[[i]] <- data.frame(unique(Mags$Class[Mags$Phylum == Phylum[i]]))
}
在输出中,它仅适用于列表的最后一个元素。但我不知道为什么。
为了确保该函数原则上符合我的要求,我在没有 for 循环的情况下进行了尝试。
erg[[1]] <- data.frame(unique(Mags$Class[Mags$Phylum == Phylum[1]]))
erg[[2]] <- data.frame(unique(Mags$Class[Mags$Phylum == Phylum[2]]))
erg[[3]] <- data.frame(unique(Mags$Class[Mags$Phylum == Phylum[3]]))
erg[[4]] <- data.frame(unique(Mags$Class[Mags$Phylum == Phylum[4]]))
提前感谢您的帮助。
【问题讨论】:
-
你能复制粘贴当前输出的样子以及你在循环之后想要什么吗?