r - 按组对 data.frame 执行基于向量的操作

标签 r dataframe vector

我在这里看到了一些相当类似的问题的答案,但是,我的大脑在将我读到的内容直接应用到我的数据方面遇到了一些困难。

我想从组织成组的较大数据框中减去 data.frame 中包含的向量。在这种情况下,我有一个标准引用 (dfRef),我想从几个重复的实验测量 (dfMeasured) 中减去它,以获得差异 (dfDelta) 的 data.frame。

数据的组织方式如下:

dfRef
# input output
# 0     4
# 1     7
# 2     8
# 3     1

dfMeasured
# input output group
#  0      4      A
#  1      5      A
#  2      9      A
#  3      1      A
#  0      2      B
#  1      3      B
#  2      5      B
#  3      8      B
#  0      1      C
#  1      4      C
#  2      2      C
#  3      9      C

我希望我的输出是这样的:

dfDelta
# input output group
#  0      0      A
#  1      -2     A
#  2      1      A
#  3      0      A
#  0      -2     B
#  1      -4     B
#  2      -3     B
#  3      7      B
#  0      -3     C
#  1      -3     C
#  2      -6     C
#  3      8      C

最佳答案

一种方法是加入on“输入”,然后将值分配给“输出”

library(data.table)
setDT(dfMeasured)[dfRef, output := output - i.output,on = .(input)]
dfMeasured
#    input output group
# 1:     0      0     A
# 2:     1     -2     A
# 3:     2      1     A
# 4:     3      0     A
# 5:     0     -2     B
# 6:     1     -4     B
# 7:     2     -3     B
# 8:     3      7     B
# 9:     0     -3     C
#10:     1     -3     C
#11:     2     -6     C
#12:     3      8     C

关于r - 按组对 data.frame 执行基于向量的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872053/

相关文章:

python - 在 C++ 中切片 vector

C++ QuickSort 不排序

在 R 中对元组进行排序后删除重复的元组

读取 read_csv2(readr 包)中的行名称

python - 如何在 python pandas 中使用带有 bool 的查询函数?

python - 如何为 Pandas 数据框列中的每个唯一值添加重复的月份行?

r - 如何使用三个不同数据帧的变量执行 PCA 并对它们进行颜色区分?

python - 在 R 中使用自定义分词器将文本转换为向量?

python - 删除 Pandas 方差低的列

matlab - 将一个向量拆包成 k 个变量