我需要根据另一个数据帧中的多个标准在数据帧中查找一个值。示例
A=
Country Year Number
USA 1994 455
Canada 1997 342
Canada 1998 987必须添加了一个名为"rate“的列。
B=
Year USA Canada
1993 21 654
1994 41 321
1995 56 789
1996 85 123
1997 65 456
1998 1 999所以最终的数据框架是
C=
Country Year Number Rate
USA 1994 455 41
Canada 1997 342 456
Canada 1998 987 999换句话说:从A到B查找年份和国家,结果是C。我想这样做没有循环。我希望有一个一般的方法,这样我就可以根据两个以上的标准进行查询。
发布于 2015-10-07 12:18:54
下面是另一种使用data.table的方法,它不需要将第二个数据表转换为长表单:
require(data.table) # 1.9.6+
A[B, Rate := get(Country), by=.EACHI, on="Year"]
# Country Year Number Rate
# 1: USA 1994 455 41
# 2: Canada 1997 342 456
# 3: Canada 1998 987 999其中A和B是data.tables,而Country是字符类型的。
https://stackoverflow.com/questions/32991376
复制相似问题