【发布时间】:2023-01-18 09:32:14
【问题描述】:
我有一个按泳道(列)包含基因表达数据的数据框。我想做的是编写一个循环,它获取每一行的总和,但每次都逐渐添加到另一列中。因此,每次循环时,我都会在数据框中添加另一列,其中包含每行的总和以及数据框末尾的另一列。在下面的示例中,我手动使用 apply() 函数完成了此操作,但这非常低效并且对于大型数据集不可行。我弄乱了 cumsum() 函数,但似乎无法让它为此工作。很可能我错过了一些明显的东西,但任何指导都会很棒!
#示例数据框
c1 <- c('G1', 'G2', 'G3')
c2 <- c(5, 3, 1)
c3 <- c(3, 7, 1)
c4 <- c(6, 3, 4)
c5 <- c(6, 4, 3)
df <- data.frame(c1, c2, c3, c4, c5)
#Cal cumulative sums
sum.2.3 <- apply(df[,2:3],1,sum)
sum.2.4 <- apply(df[,2:4],1,sum)
sum.2.5 <- apply(df[,2:5],1,sum)
df <- cbind(df, sum.2.3, sum.2.4, sum.2.5)
【问题讨论】:
标签: r loops cumulative-sum