gpt4 book ai didi

R-创建一个新变量,其中每个观察值都依赖于另一个表和数据框中的其他变量

转载 作者:行者123 更新时间:2023-12-04 04:54:52 25 4
gpt4 key购买 nike

我有以下两个表:

df <- data.frame(eth = c("A","B","B","A","C"),ZIP1 = c(1,1,2,3,5))
Inc <- data.frame(ZIP2 = c(1,2,3,4,5,6,7),A = c(56,98,43,4,90,19,59), B = c(49,10,69,30,10,4,95),C = c(69,2,59,8,17,84,30))

eth ZIP1 ZIP2 A B C
A 1 1 56 49 69
B 1 2 98 10 2
B 2 3 43 69 59
A 3 4 4 30 8
C 5 5 90 10 17
6 19 4 84
7 59 95 39

我想在df数据框中创建一个变量Inc,其中对于每个观察值,该值都是观察值的eth和ZIP的交集。在我的示例中,它将导致:
   eth    ZIP1   Inc        
A 1 56
B 1 49
B 2 10
A 3 43
C 5 17

循环或蛮力可以解决这个问题,但需要花费一些时间在我的数据集上,我正在寻找一种更细微的方法,也许使用data.table。在我看来,这是一个非常标准的问题,如果是这样,我很抱歉,我无法为此问题制定准确的标题(您可能已经注意到了..),这也许就是为什么我没有找到任何类似的问题在论坛上搜索。

谢谢 !

最佳答案

那这个呢?

library(reshape2)
merge(df, melt(Inc, id="ZIP2"), by.x = c("ZIP1", "eth"), by.y = c("ZIP2", "variable"))
ZIP1 eth value
1 1 A 56
2 1 B 49
3 2 B 10
4 3 A 43
5 5 C 17

关于R-创建一个新变量,其中每个观察值都依赖于另一个表和数据框中的其他变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com