我正在处理一个列表,我想多次循环一个变量,但我不能。
这是示例:
a=data.frame(ID=1:5,WT=1:5)
b=data.frame(ID=101:105,WT=101:105)
c=list(a,b)
names(c)=c("P01","P02")
现在我想为每个数据框添加一个新列
c$P01$seq=1:length(c$P01$ID)
c$P02$seq=1:length(c$P02$ID)
我遇到的问题是我的列表有 29 个数据框,而不是本例中的两个。我如何自动化这个过程,以便我可以向每个数据框添加一个新列?
我尝试了一些没有成功的事情,比如创建一个循环,但它不起作用:
unique=names(c)
for (i in 1:length(unique) {
c$unique[i]$seq=1:length(c$unique[i]$seq)
}
我们可以使用seq_along
与lapply
lapply(c, transform, Seq = seq_along(ID))
或使用 tidyverse
library(tidyverse)
c %>%
map(~ .x %>%
mutate(Seq = row_number()))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句