如何在 R 数据框列中查找最小值(不包括零或零以下的值)?


为了在 R 数据框列中查找最小值(不包括零或零以下的值),我们可以结合使用 `min` 函数和通过单个方括号对大于 0 的值进行子集选择。

例如,如果我们有一个名为 `df` 的数据框,其中包含一个名为 `X` 的列,则可以通过使用以下命令找到不包括零或零以下值的最小值:

min(df[df$X>0,1])

示例 1

以下代码片段创建一个示例数据框:

x<-rnorm(20)
df1<-data.frame(x)
df1

创建以下数据框:

     x
1  -0.3880970
2   0.3618485
3   0.5030129
4   1.3981004
5   1.3462107
6  -1.1734200
7  -0.4259265
8   0.6943913
9  -0.4037978
10 -0.6777677
11 -1.0339321
12  0.1048411
13  0.5757606
14  1.1436323
15 -1.0120865
16  0.6414445
17 -0.6199611
18  1.3455134
19  0.7757701
20 -0.7801373

为了在 x 中排除小于 0 的值后找到最小值,请将以下代码添加到上面的代码片段中:

x<-rnorm(20)
df1<-data.frame(x)
min(df1[df1$x>0,1])

输出

如果您将以上所有代码片段作为一个程序执行,它将生成以下输出:

[1] 0.1048411

示例 2

以下代码片段创建一个示例数据框:

y<-rpois(20,1)
df2<-data.frame(y)
df2

创建以下数据框:

   y
1  0
2  1
3  0
4  1
5  1
6  0
7  0
8  2
9  2
10 1
11 3
12 1
13 1
14 0
15 0
16 1
17 2
18 3
19 2
20 1

为了在 y 中排除小于 0 的值后找到最小值,请将以下代码添加到上面的代码片段中:

y<-rpois(20,1)
df2<-data.frame(y)
min(df2[df2$y>0,1])

输出

如果您将以上所有代码片段作为一个程序执行,它将生成以下输出:

[1] 1

示例 3

以下代码片段创建一个示例数据框:

z<-rnorm(20,1,0.5)
df3<-data.frame(z)
df3

创建以下数据框:

      z
1  1.1018723
2  0.5307347
3  1.0830877
4  1.2370675
5  0.7851581
6  1.4266275
7  1.4885041
8  0.7601659
9  0.9276275
10 1.1924751
11 1.3655478
12 0.1325154
13 0.5545835
14 1.2137084
15 1.6315352
16 1.1455820
17 0.9393499
18 0.8205281
19 0.7663259
20 0.6274036

为了在 z 中排除小于 0 的值后找到最小值,请将以下代码添加到上面的代码片段中:

z<-rnorm(20,1,0.5)
df3<-data.frame(z)
min(df3[df3$z>0,1])

输出

如果您将以上所有代码片段作为一个程序执行,它将生成以下输出:

[1] 0.1325154

更新于:2021年11月9日

3K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告