r - R 中的条件计算

标签 r lookup

我有一个包含类别和值的数据框。根据类别,我想减去存储在另一个表中的值。

myframe <- data.frame(
         x = factor(c("A", "D", "A", "C")), 
         y = c(8, 3, 9, 9))

reference <- c('A'= 1, 'B'= 2, 'C'= 3, 'D'= 4)  

期望的(y-ref)结果是:

result <- data.frame(
         x = factor(c("A", "D", "A", "C")), 
         y = c(8, 3, 9, 9),
         r = c(7, -1, 8, 6))

      x y  r
    1 A 8  7        
    2 D 3 -1
    3 A 9  8
    4 C 9  6

在本例中,引用“表”是一个命名向量,但可以将其更改为更适合的数据格式。

我不知道如何实现这个...

最佳答案

这是一个相当简单的任务,使用 match[...

myframe$r <- myframe$y - reference[ match( myframe$x , names( reference ) ) ]
#  x y  r
#1 A 8  7
#2 D 3 -1
#3 A 9  8
#4 C 9  6

很确定这是一个(多次)重复,所以我们应该为您找到一个好的指针并关闭问题(但我赞扬您显示输入数据和所需的结果,许多问题通常没有很好地布局) .

编辑

网站上有很多很多基于匹配的问题。很难选出一个来作为精确的重复。但我建议通过搜索“ match”来浏览其中的一些内容(您可以通过将搜索词括在方括号中来按特定标签进行搜索,如下所示“[r]”) .

关于r - R 中的条件计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642078/

相关文章:

R:如何禁用包函数列表的截断?

excel - 如何在多行/列 Excel 电子表格中查找值的位置?

go - 检查结构中的结构数组中是否存在值

excel - 仅当它们与查找中的类别 ID 匹配时,如何在 excel 中对值求和

python - 在另一个数据框中查找列名

r - ggplot2 中的语音注视事件图

r - 使用map_if省略NA和空数据帧

r - 使用 tableGrob 在表中添加上标

r - 使用 dplyr 有条件地替换因子变量的水平

python - 使用 numpy 获取查找表索引的最快方法