如何根据R数据框中的几列找到每行的最小值?
为了根据 R 数据框中的几列找到每一行的最小值,我们可以在函数内部使用 pmin 函数。
例如,如果我们有一个名为 df 的数据框,它包含五列,比如 x、y、z、a 和 b,那么可以使用下面给出的命令找到基于列 x、y 和 b 的每一行的最小值 -
with(df,pmin(x,y,b))
示例 1
以下代码段创建了一个示例数据框 -
x1<-rnorm(20)x2<-rnorm(20)
x3<-rnorm(20)
x4<-rnorm(20)
df1<-data.frame(x1,x2,x3,x4)
df1
创建以下数据框 -
x1 x2 x3 x41 -0.11773107 -0.82035732 -0.28450601 -1.10704509
2 -1.01962604 -2.60294139 0.45711797 0.43207151
3 1.13500837 -1.14440016 -0.26626228 -0.73794240
4 -0.80790790 -1.14806291 0.35394025 -0.12112739
5 -0.06178105 -0.57400680 -0.66666658 1.09352761
6 -0.27553943 -1.36698799 -0.31081777 0.04752593
7 0.10584138 -1.34775886 0.17752275 0.38897313
8 -0.12614587 -0.03826633 0.70551865 -1.15621529
9 1.30759989 -0.23571489 0.38343949 -0.33398701
10 0.80694222 1.01968698 0.97463771 -0.47795594
11 -1.18169096 -0.03684450 -0.59514439 -1.21205644
12 0.43798192 -0.45043310 -0.42103633 -0.81786582
13 0.08569171 -0.21929358 -0.29929403 0.48033841
14 1.03432091 -0.66014884 0.40906268 -2.26329167
15 -1.90251190 -1.19862628 0.41706688 -0.44017107
16 -0.35222400 0.37808439 -0.68560797 0.36525694
17 -1.38445655 1.73951876 1.24614256 -2.23414164
18 -1.33440782 0.50000865 0.85680768 0.13643720
19 -1.29441749 -0.18851102 -0.69235928 -0.13695773
20 0.05258651 -0.10824434 -0.06976701 0.13541223
要找到 x2、x3 和 x4 列的每一行的最小值,请将以下代码添加到上述代码段中 -
x1<-rnorm(20)输出结果x2<-rnorm(20)
x3<-rnorm(20)
x4<-rnorm(20)
df1<-data.frame(x1,x2,x3,x4)
df1$Min_LastThree<-with(df1,pmin(x2,x3,x4))
df1
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x1 x2 x3 x4 Min_LastThree1 -0.11773107 -0.82035732 -0.28450601 -1.10704509 -1.1070451
2 -1.01962604 -2.60294139 0.45711797 0.43207151 -2.6029414
3 1.13500837 -1.14440016 -0.26626228 -0.73794240 -1.1444002
4 -0.80790790 -1.14806291 0.35394025 -0.12112739 -1.1480629
5 -0.06178105 -0.57400680 -0.66666658 1.09352761 -0.6666666
6 -0.27553943 -1.36698799 -0.31081777 0.04752593 -1.3669880
7 0.10584138 -1.34775886 0.17752275 0.38897313 -1.3477589
8 -0.12614587 -0.03826633 0.70551865 -1.15621529 -1.1562153
9 1.30759989 -0.23571489 0.38343949 -0.33398701 -0.3339870
10 0.80694222 1.01968698 0.97463771 -0.47795594 -0.4779559
11 -1.18169096 -0.03684450 -0.59514439 -1.21205644 -1.2120564
12 0.43798192 -0.45043310 -0.42103633 -0.81786582 -0.8178658
13 0.08569171 -0.21929358 -0.29929403 0.48033841 -0.2992940
14 1.03432091 -0.66014884 0.40906268 -2.26329167 -2.2632917
15 -1.90251190 -1.19862628 0.41706688 -0.44017107 -1.1986263
16 -0.35222400 0.37808439 -0.68560797 0.36525694 -0.6856080
17 -1.38445655 1.73951876 1.24614256 -2.23414164 -2.2341416
18 -1.33440782 0.50000865 0.85680768 0.13643720 0.1364372
19 -1.29441749 -0.18851102 -0.69235928 -0.13695773 -0.6923593
20 0.05258651 -0.10824434 -0.06976701 0.13541223 -0.1082443
示例 2
以下代码段创建了一个示例数据框 -
y1<-rpois(20,5)输出结果y2<-rpois(20,1)
y3<-rpois(20,2)
y4<-rpois(20,3)
df2<-data.frame(y1,y2,y3,y4)
df2
创建以下数据框 -
y1 y2 y3 y41 1 0 0 1
2 11 1 2 7
3 5 0 5 2
4 3 1 4 4
5 6 0 2 7
6 6 0 3 3
7 2 0 2 5
8 4 0 0 5
9 6 0 1 1
10 4 1 3 3
11 6 0 4 4
12 5 0 2 2
13 7 0 1 1
14 4 3 0 3
15 5 2 4 2
16 4 0 4 2
17 4 0 1 2
18 6 1 2 2
19 8 2 2 4
20 11 0 2 2
要找到 y2 和 y3 列的每一行的最小值,请将以下代码添加到上面的代码段中 -
y1<-rpois(20,5)输出结果y2<-rpois(20,1)
y3<-rpois(20,2)
y4<-rpois(20,3)
df2<-data.frame(y1,y2,y3,y4)
df2$Min_MiddleTwo<-with(df2,pmin(y2,y3))
df2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
y1 y2 y3 y4 Min_MiddleTwo1 1 0 0 1 0
2 11 1 2 7 1
3 5 0 5 2 0
4 3 1 4 4 1
5 6 0 2 7 0
6 6 0 3 3 0
7 2 0 2 5 0
8 4 0 0 5 0
9 6 0 1 1 0
10 4 1 3 3 1
11 6 0 4 4 0
12 5 0 2 2 0
13 7 0 1 1 0
14 4 3 0 3 0
15 5 2 4 2 2
16 4 0 4 2 0
17 4 0 1 2 0
18 6 1 2 2 1
19 8 2 2 4 2
20 11 0 2 2 0
以上是 如何根据R数据框中的几列找到每行的最小值? 的全部内容, 来源链接: utcz.com/z/347470.html