如何按一列对数据表进行子集化,而对另一列进行最小值处理

Pastadisaster

假设我有一个过程取决于两个输入和一个输出。该过程已经在其他地方进行了数值模拟,因此再次运行这些模拟是不切实际的。

我已将数据存储在表中。该表包含(其中包括)两个关键输入参数和结果输出参数(此处分别为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的唯一值和满足指定alpha和v的min(abs(quant-alpha))的quant值。该表还必须包含q的相关值以及该行中包含的任何其他数据。

我认为应该为这个问题提供一个非常简单的解决方案,而且我还是个新手,不知道如何找到它!

西蒙·奥汉隆

您只是在尝试这样做吗?

fd[  , .SD[ which.min( abs(quant-0.5) ) ] , by = v ]
#        v    q     quant
#  1: 0.01 0.42 0.5010319
#  2: 0.02 0.71 0.4983129
#  3: 0.03 0.47 0.4996793
#  4: 0.04 0.01 0.5028813
#  5: 0.05 0.93 0.5009666
#  6: 0.06 0.93 0.4996367

您将获得by = v满足条件的每个组(的行,which.min以作为子集.SD

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

数据表,如何让一列用图标对另一列进行排序?

按两列对数据表进行排序,其中一列为asc,另一列为desc c#

使用 case_when() 和 filter() 根据 R 中一列中的值和另一列中的级别对数据框进行子集化

在一列上按另一列对数据框进行排序-Pandas

根据一列中的值(以另一列为条件)按顺序对数据进行排序

R:根据日期列在另一列的因子级别内对数据框进行子集化

SQL将一列中的最小值与另一列中的最大日期进行比较

以另一列的最小值/最大值作为条件作为 SUM 进行测量

如何根据(第一行的值 + X)按组对数据表进行子集

如何在一列中获取具有最小值的行,并按另一列进行分组,同时保留其他列?

MS Access对一列进行排序,而对另一列进行移动

在一列上对表格进行排名,而对另一列进行排序

在一列中基于两个值对数据框进行子集

如何根据一列对数据框进行分组并根据另一列进行转置

R 数据框:如何根据另一列中不同值的列值对数据进行切片

如何用一列的最大值与另一列的最小值之间的差异将一列中的df按Python分组?

如何根据数据框另一列中的条件在列中查找最小值?

对与数据框中的另一列相对应的两列中的所有值进行子集化

从一列中获取对应于行子集的另一列最小值的值

按五列匹配数据表以更改另一列中的值

Python Pandas:按另一列对数据透视表列进行排序

根据列的值和另一列中列表的长度对数据框进行排序

如何通过另一列的最小值过滤重复的数据框?

如何基于另一列对数据框列进行切片

SQL按值对另一列进行排序

如何在R的另一列中仅对具有多个不同值的行进行子集化?

熊猫:如何按一列的日期对数据框行进行排序

根据另一列中的值对pandas数据框中的列进行归一化

熊猫按另一列的平均值对一列的值进行排序