R 如何将第一行中的值减法循环到同一列中的值
我正在寻找一个函数/循环,它首先选择子值的第一个单元格减去第二个单元格中的子值,然后在第二个循环中选择第二个单元格,以此类推。然后循环对每列执行此操作 例如:R 如何将第一行中的值减法循环到同一列中的值,r,loops,tidyr,R,Loops,Tidyr,我正在寻找一个函数/循环,它首先选择子值的第一个单元格减去第二个单元格中的子值,然后在第二个循环中选择第二个单元格,以此类推。然后循环对每列执行此操作 例如: G1-G2,G1-G3,G1-G4等。然后G2-G3,G2-G4等。那么你想用第二行减去完整的第一行,第1行减去第3行,依此类推,直到最后一行,然后用第二行减去第三行,第二行减去第四行,依此类推,直到最后一行 我认为combn可以帮助您实现以下目标: df <- data.frame(a = 1:5, b = 11:15, c =
G1-G2,G1-G3,G1-G4等。然后G2-G3,G2-G4等。那么你想用第二行减去完整的第一行,第1行减去第3行,依此类推,直到最后一行,然后用第二行减去第三行,第二行减去第四行,依此类推,直到最后一行 我认为
combn
可以帮助您实现以下目标:
df <- data.frame(a = 1:5, b = 11:15, c = 4:8)
mat <- combn(seq(nrow(df)), 2)
result <- df[mat[1, ], ] - df[mat[2, ], ]
这就是你想要的吗
data = data.frame(matrix(rnorm(3*5, 25, 5), ncol = 3)) # 5 rows for demo
colnames(data) = c("A","B","C")
rownames(data) = paste("G",seq(1,nrow(data)), sep = "")
生成的数据如下所示:
--
A.
B
C
G1
14.83125
21.33644
21.99278
G2
33.88000
28.63547
29.96025
G3
30.60549
22.31251
16.20981
G4
29.74367
30.92053
20.39461
G5
17.99330
31.33550
26.07054
图像不是发布数据(或代码)的好方法。看到了吗。您能否以
dput
格式发布样本数据?请使用您尝试过的代码和dput(df)
的输出编辑问题。或者,如果dput(头部(df,20))的输出太大。(注意:df
是数据集的名称。)同时发布预期输出。
data = data.frame(matrix(rnorm(3*5, 25, 5), ncol = 3)) # 5 rows for demo
colnames(data) = c("A","B","C")
rownames(data) = paste("G",seq(1,nrow(data)), sep = "")