Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在列中输入NA值,使列总和和参考值在R中最小化_R - Fatal编程技术网

在列中输入NA值,使列总和和参考值在R中最小化

在列中输入NA值,使列总和和参考值在R中最小化,r,R,我在R中有一个数据帧,如下所示: structure(list(Sales = c(1, 0, 4, 4, 2, 3, 3, 0, 2, 2), Txn_count = c(1, 0, 1, 2, 1, 2, 1, 0, 1, 1), VPP = c(1, NaN, 4, 2, 2, 1.5, 3, NaN, 2, 2), prob = c(0.99, 0.81, 0.7, 0.8, 0.47, 0.59, 0.75, 0.99, 0.53, 0.72), row_Sales = c(0.

我在R中有一个数据帧,如下所示:

structure(list(Sales = c(1, 0, 4, 4, 2, 3, 3, 0, 2, 2), Txn_count = c(1, 
0, 1, 2, 1, 2, 1, 0, 1, 1), VPP = c(1, NaN, 4, 2, 2, 1.5, 3, 
NaN, 2, 2), prob = c(0.99, 0.81, 0.7, 0.8, 0.47, 0.59, 0.75, 
0.99, 0.53, 0.72), row_Sales = c(0.99, NaN, 2.8, 1.6, 0.94, 0.885, 
2.25, NaN, 1.06, 1.44)), row.names = c(NA, -10L), class = "data.frame")
列VPP(每次购买的价值)计算为每行的销售/交易

我已将销售额\u实际值\vpp计算为

sum(probabilities)*[sum(sales)/sum(transaction)]
i、 e

该值为15.435

现在,我想在
row\u Sales
列中插补NA值,以使插补后
Sales\u实际值\u vpp
sum(row\u Sales列)
之间的差异最小化请注意,所有NA值都将替换为相同的值,因此差异仍然最小


如何使用solver在R中实现这一点?

将第一个NA设置为sales\u actual\u vpp-sum(row\u sales),将其他NAs设置为0。这解决了您所描述的问题:sales_actual_vpp和sum(row_sales)之间的差异变为0。如果你还想要别的东西,请具体点。谢谢你的回复。我已编辑了我的问题,并以粗体突出显示了必要条件。我需要用这个相同的值替换所有NA值,这样差异仍然是最小的。使用R(不是Excel),我得到15.435的销售实际值vpp。你能再核对一下吗?是的,爱德华,我错了。我已经更正了。然后,您应该将所有NAs设置为(sales_actual_vpp-sum(row_sales))/number_of_NAs。它能解决你的问题吗?
sum(column D)*[sum(column A)/sum(column B)]