如何在 R 数据框列中找到不包括零或更小值的最小数字?

r programmingserver side programmingprogramming更新于 2025/4/7 22:52:17

要查找 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

Following snippet creates a sample data frame −

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

相关文章