为每个唯一的最大值选择最小值,并为此子集定义行数

时间:2019-05-29 12:21:11

标签: r


我对R很陌生,这也是我在这里的第一个问题。我会尽量提供尽可能准确的信息。
我试图实现的是绘制一条曲线,以求出机器过程的最佳值。 为此,我仅为此机器创建了大数据框的子集。
在我的数据框中,每个观察(行)都有多个变量/度量(列),看起来像这样(实际上有120行):

> head(dataset_M5)
# A tibble: 6 x 7
#            Freq              Geschw              FR      L       D  PPPI                E
            <dbl>               <dbl>             <dbl> <dbl>    <dbl> <dbl>            <dbl>
1             100                  84               8.4    42       70  83.3             72.6
2             100                  88               8.8    42       70  79.5             72.2
3             100                  60               4.8    43       70 117.              75.5
4             100                  90               8.1    43       70  77.8             72.0
5             100                  80               8      43       70  87.5             73.0
6             100                  92               9.2    43       70  76.1             71.8
> 

“ L”列是一种质量度量,因此我正在寻找包含n个最佳(最低)值(例如10个最低值)的行。 最好的值可以出现在多行中,如您在上面看到的那样,其中L为42的行为2行,L为43的行为4行。因此,我只想保留每行中“ FR”值最低的行唯一的“ L”值(42表示8.4,43表示4.8)。
我尝试了以下方法:

topM5<-subset(dataset_M5, L == min(L), FR == min(FR),)

但这只会给我:

> head(topM5)
# A tibble: 2 x 7
#            Freq              Geschw              FR      L       D  PPPI                E
            <dbl>               <dbl>             <dbl> <dbl>    <dbl> <dbl>            <dbl>
1             100                  84               8.4    42       70  83.3             72.6
2             100                  88               8.8    42       70  79.5             72.2

在我的R脚本的其他部分中,我使用了dplyr包的top_n函数从另一个子集中提取顶部值,但这只为我提供了指定列具有n个最佳值的所有行。
我想要的是最佳值,以便将它们绘制为最佳曲线,因此所需的输出看起来像(仅包含更多行,例如10个最佳行):

# A tibble: 6 x 7
#            Freq              Geschw              FR      L       D  PPPI                E
            <dbl>               <dbl>             <dbl> <dbl>    <dbl> <dbl>            <dbl>
1             100                  84               8.4    42       70  83.3             72.6

3             100                  60               4.8    43       70 117.              75.5

> 

所以我的问题是:
1.如何定义子集中的行数(n)?
2.如何仅保留每个L唯一值的FR最小值的行?

我希望能解释一下,以便你们理解。
已经谢谢了!

0 个答案:

没有答案