我有两个数据帧:
DF1:
WAV UV VIOLET BLUE
sD1 10.8 10.1 23.5
sA4 6.2 8.2 19.9
sA1 8.3 11.7 28.6
sC2 7.9 8.2 31.0
sC3 10.7 9.5 18.1
DF2:
ID UV VIOLET BLUE
D1 7.9 10.1 19.3
D2 7.0 9.2 15.9
D3 21.4 20.7 27.4
D4 10.3 8.9 20.9
D5 21.7 16.5 21.3
我想找到df2中D1列的总和与df1中每行的列之间的差异,并在新的数据帧中生成此输出 . 然后,对于df2的D2,需要对每行df1重复这一过程,依此类推 . 每行的总和之间的每个新差异应该是新数据帧的单独条目,并且df2的差异行的每个列表应该是输出中的新行 . 所以输出应该如下所示:
D1 sum(D1)-sum(sD1) sum(D1)-sum(sA4) sum(D1)-sum(sA1) sum(D1-sC2) sum(D1)-sum(sC3)
D2 sum(D2)-sum(sD1) sum(D2)-sum(sA4) sum(D2)-sum(sA1) sum(D2-sC2) sum(D2)-sum(sC3)
D3 sum(D3)-sum(sD1) sum(D3)-sum(sA4) sum(D3)-sum(sA1) sum(D3-sC2) sum(D3)-sum(sC3)
D4 sum(D4)-sum(sD1) sum(D4)-sum(sA4) sum(D4)-sum(sA1) sum(D4-sC2) sum(D4)-sum(sC3)
D5 sum(D5)-sum(sD1) sum(D5)-sum(sA4) sum(D5)-sum(sA1) sum(D5-sC2) sum(D5)-sum(sC3)
我愿意接受任何建议 .
1 回答
以下是三种方式,@ Onyambu在评论中已经提到过两种方式 . 其中,
outer
选项似乎是最快的 .要么
要么
例如,您可以这样做: