我对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最小值的行?
我希望能解释一下,以便你们理解。
已经谢谢了!