我有一个包含类别和值的数据框。根据类别,我想减去存储在另一个表中的值。
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
很确定这是一个(多次)重复,所以我们应该为您找到一个好的指针并关闭问题(但我赞扬您显示输入数据和所需的结果,许多问题通常没有很好地布局) .
编辑
网站上有很多很多基于匹配
的问题。很难选出一个来作为精确的重复。但我建议通过搜索“r match”来浏览其中的一些内容(您可以通过将搜索词括在方括号中来按特定标签进行搜索,如下所示“[r]”
) .
关于r - R 中的条件计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642078/