R中的阶跃函数减法

R中的阶跃函数减法,r,function,R,Function,我已经创建了两个阶跃函数向量,我想找出向量中每个索引对应的阶跃函数之间的差异。我使用MosaicCalc库来创建按选举年分组的累积分布函数,我想从另一组函数中减去一组函数。具体而言,我使用相同的数据帧创建两个阶跃函数向量: party_econ_cdf <- lapply(split(econ_spectrum_data, econ_spectrum_data$election), function(x) (antiD(stepfun(c(x$econ_place), c(x$econ_s

我已经创建了两个阶跃函数向量,我想找出向量中每个索引对应的阶跃函数之间的差异。我使用MosaicCalc库来创建按选举年分组的累积分布函数,我想从另一组函数中减去一组函数。具体而言,我使用相同的数据帧创建两个阶跃函数向量:

party_econ_cdf <- lapply(split(econ_spectrum_data, econ_spectrum_data$election), function(x) (antiD(stepfun(c(x$econ_place), c(x$econ_share.party, 0))(y) ~ y)))

voter_econ_cdf <- lapply(split(econ_spectrum_data, econ_spectrum_data$election), function(x) (antiD(stepfun(c(x$econ_place), c(x$econ_share.voter, 0))(y) ~ y)))
以下是CDF对象的概述:

> dput(head(party_econ_cdf, 20))
list(`Albania, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2009` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2002` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2015` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2019` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)


> dput(head(voter_econ_cdf, 20))
list(`Albania, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2009` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2002` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2015` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2019` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)

您需要提供一个剪切粘贴示例。我们没有这些东西。如果这些StepFunction的范围不同,那么您还需要指定在极端值之外要使用的值。我的代码非常长,因此我添加了相关数据帧的快照。数据的图片比无用更糟糕。您希望我们不会通过重新输入来重新创建这样的数据,对吗?我有没有办法附加我的代码?在SO中搜索“伟大的R可复制示例”
> dput(head(party_econ_cdf, 20))
list(`Albania, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2009` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2002` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2015` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2019` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)


> dput(head(voter_econ_cdf, 20))
list(`Albania, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2009` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Albania, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2002` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Algeria, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2001` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2005` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2013` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2015` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Argentina, 2019` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2003` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2007` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2012` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)
}, `Armenia, 2017` = function (y, C = 0) 
{
    numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
        formals(), from, ciName = intC, .tol)