【问题标题】:Data.table() creating a table of a vector between 2 numbersData.table() 在 2 个数字之间创建一个向量表
【发布时间】:2022-11-11 06:53:26
【问题描述】:

在 R 中:

我有:

y = rep(0:200,1)

u = runif(201,0,1)

f(y) = probability mass function which takes in values of yi

我想编写一个函数来检查 u 的每个值是否:f(yi-1) < ui =< f(yi),如果是,则打印 y 的值。

例如:假设 f(y3) < u7 =< f(y4) 那么函数将返回 y4 (在这种情况下 = 3)。

我想使用 data.table() 创建一个表,但是我不确定如何处理这个

这是为了帮助 f(y) 是离散的蒙特卡罗的反演方法。

非常感谢任何帮助

【问题讨论】:

    标签: r data.table montecarlo


    【解决方案1】:
    library(data.table)
    yourFunction <- function(e) {
     return(e)
    }
    
    dt <- data.table(y = rep(0:200,1), u = runif(201,0,1))
    dt[,y_lag:= shift(y,+1)]
    
    dt[yourFunction(y_lag) < u & u <= yourFunction(y),] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2013-03-13
      • 1970-01-01
      相关资源
      最近更新 更多