代码之家  ›  专栏  ›  技术社区  ›  Denver Dang

用列表数据计算矢量

r
  •  1
  • Denver Dang  · 技术社区  · 7 年前

    我有一个函数是这样的:

    calc_func <- function(data, n) {
        return(sum((data[1]**(1/n))*(data[2]/sum(data[2]))**n)
    }
    

    基本上 data 只是一个两列列表(从.txt文件加载),如下所示:

           col_data1      col_data2 
    1      0.005          1.921053e+01
    2      0.015          9.410499e-01
    3      0.025          7.493472e-01
    4      0.035          6.231897e-01
    5      0.045          5.354181e-01
    

    所以如果 n = 0.5 ,或者类似的东西,它只需要 col_data1 1/n 然后把一切的力量加起来 n

    n个 n <- seq(0.1, 1, 0.01) ,我知道我可以创建一个简单的循环并迭代 ,然后获取 length(n) n个 其中每个单独的值将用作函数中的单独输入?如果我运行这个,我会得到一个新的向量/列表 价值观,但有些东西是错误的,价值观根本不是它们应该是什么(我不确定它实际上是做什么来诚实)。

    1 回复  |  直到 7 年前
        1
  •  1
  •   DanY    7 年前

    你需要 mapply :

    n=2 n=4 您的数据存储在名为 df ,然后:

    mapply(calc_func, n=seq(2,4), MoreArgs = list(data=df))