【发布时间】:2013-11-20 12:32:03
【问题描述】:
假设我有一个依赖于两个输入和一个输出的过程。该过程已经在其他地方进行了数值模拟,再次运行这些模拟是不切实际的。
我已将数据存储在表格中。该表包含(除其他外)两个关键输入参数和结果输出参数(此处分别为 v、q 和 quant)。
> v=0.01*rep(1:100, each=100)
> q=0.01*rep(seq(1:100),100)
> quant <- rnorm(10000, mean=0.5, sd=0.1)
> fd <- data.table(q,v, quant)
我的问题:输入参数空间被其中一个输入(此处为 v)的离散值细分,我想知道如何提取我的表的子集,其中第二个输入 (q) 的值产生在另一个输入保持不变的子集中,输出的某个极值(比如最接近特定值 alpha,以便我们寻找 min(abs(quant-alpha)))。例如,假设 alpha=0.5
fd1 <- subset(fd,???min(abs(quant-0.5)),by=v)
因此,结果表将具有唯一的 v 值和 quant 值,它们满足指定 alpha 和 v 的 min(abs(quant-alpha))。该表还必须包含 q 的相关值和包含在行。
我相信这个问题应该有一个非常简单的解决方案,而且我太新手了,不知道如何找到它!
【问题讨论】:
-
我敢肯定有一些不雅的杂物涉及在一个 do 循环上循环 v 的唯一值的 rbinding,但如果我继续使用这样的解决方案,我将永远不会有效地使用 R!
标签: r data.table