gpt4 book ai didi

r - 根据另一个数据框中的信息从一个数据框中提取系数

转载 作者:行者123 更新时间:2023-12-02 02:15:19 25 4
gpt4 key购买 nike

现在我在 R 中有两个数据框,包含一些如下所示的数据:

> data
p a i
1 1 1 2.2561469
2 5 2 0.2316390
3 2 3 0.4867456
4 3 1 0.1511705
5 4 2 0.8838884

其中一个包含看起来像这样的系数:

> coef
3 2 1
1 29420.50 31029.75 29941.96
2 26915.00 27881.00 27050.00
3 27756.00 28904.00 28699.40
4 28345.33 29802.33 28377.56
5 28217.00 29409.00 28738.67

这些数据框是连接在一起的,因为 data$a 中的每个值对应于 coef 中的列名,而 data$p 对应于 coef 中的行名。

我需要应用这些系数,通过将 coef 中的行名和列名与 data$a 和 data$p 相匹配,将这些系数乘以 data$i 中的值。

换句话说,对于数据中的每一行,我需要为每一行使用 data$a 和 data$p 从 coef 中提取一个特定的数字,该数字将乘以该行的 data$i 的值来创建数据中的一个新向量,看起来像这样:

> data
p a i z
1 1 1 2.2561469 67553
2 5 2 0.2316390 6812
3 2 3 0.4867456 .
4 3 1 0.1511705 .
5 4 2 0.8838884 .

我想我应该根据行名和列名在我的 coef 数据框中创建因子,但我不确定从那里去哪里。

提前致谢

伊恩

最佳答案

如果您订购了您的 coef data.frame,您可以将它们编入索引,就好像列名不存在一样。

coef <- coef[,order(names(coef))]

然后对每一行应用一个函数:

myfun <- function(x) {
x[3]*coef[x[1], x[2]]
}

data$z <- apply(data, 1, myfun)

> data
p a i z
1 1 1 2.2561469 67553.460
2 5 2 0.2316390 6812.271
3 2 3 0.4867456 13100.758
4 3 1 0.1511705 4338.503
5 4 2 0.8838884 26341.934
>

关于r - 根据另一个数据框中的信息从一个数据框中提取系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938435/

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