如果列中存在无穷大,如何在R中找到数据框列的极值?

要找到数字数据框列的极值,可以借助min和max函数来完成,但是如果我们希望在单行代码中获得相同的值,则可以使用range函数。如果列中有一些无穷大值,range.default则将使用函数,如以下示例所示。

示例

考虑以下数据帧-

set.seed(214)
x1<−sample(c(1,5,Inf,10),20,replace=TRUE)
x2<−rpois(20,5)
df1<−data.frame(x1,x2)
df1
输出结果
x1 x2
1 Inf 0
2 10 5
3 1 3
4 10 7
5 10 3
6 5 5
7 1 4
8 Inf 2
9 10 3
10 Inf 9
11 1 4
12 Inf 3
13 5 3
14 5 5
15 1 6
16 Inf 1
17 10 6
18 Inf 3
19 10 4
20 10 8

找到列x1的极值-

示例

range.default(df1$x1,finite=TRUE)
输出结果
[1] 1 10

例2

y1<−rnorm(20,5,2.3)
y2<−sample(c(Inf,rnorm(5,2)),20,replace=TRUE)
df2<−data.frame(y1,y2)
df2
输出结果
y1 y2
1 5.711206 2.367679
2 3.891755 2.367679
3 8.345217 1.529547
4 4.316907 1.888925
5 5.945366 Inf
6 8.204934 1.888925
7 9.634025 Inf
8 5.096354 Inf
9 8.186749 2.367679
10 6.808151 Inf
11 6.310553 2.586410
12 5.207341 2.586410
13 4.190045 1.888925
14 6.570371 Inf
15 1.553658 2.367679
16 5.869204 2.367679
17 7.211524 2.586410
18 7.517553 1.888925
19 7.224195 3.003426
20 4.105865 1.888925

找到列x1的极值-

示例

range.default(df2$y2,finite=TRUE)
输出结果
[1] 1.529547 3.003426