微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:逐行应用多个数学表达式

如何解决R:逐行应用多个数学表达式

我对 R 还是很陌生,我正在尝试使用来自数据帧每一行的值(称为 x)来应用 3 个不同的方程。方程中的变量是来自 x 中某些列的值。我想以方程的结果结束,因为它是自己的数据帧/表,还包括初始数据帧的第一列。

这是我的数据框 x 的示例。

   column1     name1      name2     name3     name4     name5
         A  85.30000 0.07700000  38.00000       NaN       NaN
         B  19.20000 0.53466667       NaN       NaN       NaN
         C  56.06667 0.38333333       NaN       NaN       NaN
         D  94.51667 0.12000000  19.00000       NaN  43.00000
         E  18.80000 0.24000000  12.00000  1.000000   9.50000

x 中实际上有 100 多行。 Column1 代表名称(每一行是不同的名称),其余的列是不同的变量/参数。行本质上是“属于”列 1 中名称的数据(每列中值的顺序很重要)。

这是我用于函数内容

M.Est<-function(a,b,c,d){
    Lenth<-nrow(function(a,d))
    one<-4.99%*%(d^-0.916)
    two<-4.11%*%(a^0.73)%*%(b^-0.331)
    three<-a%*%(c%/%b)^-1.5
    return(data.frame(eval(one),eval(two),eval(three))) 
} 
M.columns=cbind(M.Est(name1,name2,name3,name4))
final=data.frame(x[,1],M.columns)
colnames(final,c("column1","Res_one","Res_two","Res_three")

其中 x 是我的数据框,(name1,name4) 分别是数据框 x 中的一列,我没有使用每一列。然而,这不起作用,我无法弄清楚如何将 NaN 值整合到其中。

如果在任何行中应用的任何方程的输入中有 NaN 值,我仍然希望将方程结果包含在输出中,作为 Na/NaN。等式结果列的顺序需要匹配 x 中原始行的顺序(没有数据丢失/删除),以便它们与 x 中第一列的顺序对应/匹配(因为 x 的第 1 列中的值代表名字)。

这是我正在寻找的“最终”示例(这些不是 res 列的实际值应该是什么)

   column1    Res_one    Res_two     Res_3
         A   85.30000 0.07700000  38.00000 
         B   19.20000 0.53466667       NaN 
         C   56.06667 0.38333333       NaN     
         D   94.51667 0.12000000  19.00000     
         E   18.80000 0.24000000  12.00000 

我应该如何解决这个问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。