从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

Tritagator

我有一张表,其中第一列是时间点(例如0分钟,10分钟等),而其他每一列都是不同的测试,每一行在每个时间点都有一个度量。(这里的微生物学家:96孔板中的细菌生长曲线。)我想通过从自身和该列中的所有其他列中减去每个列的时间0测量来进行背景校正,以便在时间0处的每个测量为0。但是,时间栏应保持不变。

> input
time    A1  A2  A3
0       1   1   2
10      2   3   3
20      3   5   4
30      4   7   5

>output
time    A1  A2  A3
0       0   0   0
10      1   2   1
20      2   4   2
30      3   6   3

我已经尝试过了df$A1 = df$A1 - df$A1[1],虽然可以,但是我有96列,这会很乏味。

罗纳克·沙

使用dplyr您可以做到:

library(dplyr)
input <- input %>% mutate(across(A1:A3, ~. - .[time == 0]))
input

#  time A1 A2 A3
#1    0  0  0  0
#2   10  1  2  1
#3   20  2  4  2
#4   30  3  6  3

在基数R中,您可以使用sweep

input[-1] <- sweep(input[-1], 2, unlist(input[input$time == 0, -1]), `-`)

数据

input <- structure(list(time = c(0L, 10L, 20L, 30L), A1 = 1:4, A2 = c(1L, 
3L, 5L, 7L), A3 = 2:5), class = "data.frame", row.names = c(NA, -4L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

交换除第一行外的所有行中的numpy数组的列

从所有后续行中减去第一行

如何选择一个具有其他列最大值的列,以及另一个表中该列的所有对应行?

在MS SQL Server中重复该组时,按组删除除第一个和最后一个值以外的所有值(连续)

替换所有列中除最后一行之外的所有文本

对于每一行,查找列中具有相同值的所有行

将许多文件中的所有列合并为一个(一行!)

熊猫:用第一列中的下一个非零值替换第一行中的所有0?

使用awk,在所有列中减去上一行并打印结果

使用awk,在所有列中减去前一行并打印结果

Python:删除数据框的一列中的所有数据,并将最后一个值保留在第一行中

按除熊猫中的一个索引列以外的所有内容分组

如何选择表中除一个以外的所有列

如果任何列中的所有行均为空白,则删除整列+跳过第一行

使 CSS 网格中的一行跨越所有列

汇总一行中的所有列

如何合并除一个列外所有列中具有相同信息的行?

查看列中的所有重复行和布尔列,如果所有重复行都是“假”熊猫,则将“真”设置为第一个

删除在 MySQL 中除一列以外的所有匹配的行

Python:从数据框的列中删除所有数据,但我们存储在第一行中的最后一个值除外

如何按组删除除SQL Server中的第一行和最后一行以外的所有行?

从列表的所有xts对象的所有列中减去一个公共的xts对象

对于R中具有多列的数据集,如何从组的多行中减去一行?

Python,根据每一行的第一列中的值替换最后N列中的所有整数

MySQL获取另一个表中所有行的计数,该表中的值等于当前表中的列

计算所有组的某一列的最小值,并从该组的某一列的所有值中减去该值

如果第一列与另一个工作表上的值匹配,如何返回一行中的所有单元格

使用其他列中的仅一行减去该列

如何修剪字符串中除第一个以外的所有行