R 编程以在 data.table 对象中查找行最大值的列名。
如果我们有一个data.table对象并且我们想找到行最大值的列名,那么我们可以使用max.col函数。
例如,如果我们有一个data.table名为 DT的对象,那么我们可以使用以下命令找到行最大值的列名 -
DT[,names(.SD)[max.col(.SD,ties.method="first")]]
示例 1
以下代码段创建了一个示例数据框 -
x1<-round(rnorm(20),2)x2<-round(rnorm(20),2)
x3<-round(rnorm(20),2)
x4<-round(rnorm(20),2)
DT1<-data.table(x1,x2,x3,x4)
DT1
创建了以下数据框
x1 x2 x3 x41: 0.10 -0.77 0.01 -0.28
2: -0.81 -0.88 -1.25 -1.03
3: -0.43 1.24 1.27 0.59
4: 1.55 -0.71 0.21 -0.16
5: 1.50 -0.80 0.26 0.32
6: -0.74 -0.19 0.11 -2.21
7: -0.12 1.17 -0.08 1.63
8: 1.16 -2.45 0.40 -0.49
9: -0.42 0.49 -1.43 1.14
10: -0.63 0.79 1.39 -2.28
11: 1.03 0.79 2.10 0.85
12: -1.07 -1.50 2.45 0.05
13: 0.62 -0.25 -0.11 0.50
14: -0.32 1.23 -0.92 1.13
15: -1.14 1.95 -0.36 -0.77
16: -1.15 -0.24 0.59 0.89
17: 2.03 -1.10 1.74 -1.96
18: -0.06 1.47 0.11 1.64
19: -2.13 1.45 -1.64 -0.71
20: 1.37 -0.41 -0.21 0.37
要在上面创建的数据框中的 DT1 中查找行最大值的列名,请将以下代码添加到上面的代码段中 -
x1<-round(rnorm(20),2)输出结果x2<-round(rnorm(20),2)
x3<-round(rnorm(20),2)
x4<-round(rnorm(20),2)
DT1<-data.table(x1,x2,x3,x4)
DT1[,names(.SD)[max.col(.SD,ties.method="first")]]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] "x1" "x1" "x3" "x1" "x1" "x3" "x4" "x1" "x4" "x3" "x3" "x3" "x1" "x2" "x2"[16] "x4" "x1" "x4" "x2" "x1"
示例 2
以下代码段创建了一个示例数据框 -
y1<-rpois(20,5)y2<-rpois(20,5)
y3<-rpois(20,5)
DT2<-data.table(y1,y2,y3)
DT2
创建了以下数据框
y1 y2 y31: 5 4 4
2: 3 5 4
3: 3 6 6
4: 8 4 7
5: 1 11 8
6: 11 5 7
7: 3 5 7
8: 5 9 8
9: 4 6 4
10: 4 3 2
11: 2 6 4
12: 4 5 3
13: 7 9 7
14: 6 12 3
15: 4 10 5
16: 5 5 3
17: 7 6 4
18: 3 2 3
19: 6 3 3
20: 1 2 5
要在上面创建的数据框中的 DT2 中查找行最大值的列名,请将以下代码添加到上面的代码段中 -
y1<-rpois(20,5)输出结果y2<-rpois(20,5)
y3<-rpois(20,5)
DT2<-data.table(y1,y2,y3)
DT2
DT2[,names(.SD)[max.col(.SD,ties.method="first")]]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] "y1" "y2" "y2" "y1" "y2" "y1" "y3" "y2" "y2" "y1" "y2" "y2" "y2" "y2" "y2"[16] "y1" "y1" "y1" "y1" "y3"
示例 3
以下代码段创建了一个示例数据框 -
z1<-rexp(20)z2<-rexp(20)
z3<-rexp(20)
DT3<-data.table(z1,z2,z3)
DT3
创建了以下数据框
z1 z2 z31: 1.85175520 0.06988659 0.10876221
2: 1.69589804 0.83393956 0.08359516
3: 4.53698884 0.14180505 0.77873494
4: 1.61637232 0.40584249 0.59490613
5: 0.96935637 0.24492793 0.47872486
6: 1.81591399 0.75036377 0.10156744
7: 0.65936883 0.22916612 1.38184152
8: 0.71911018 0.11860198 1.03305886
9: 0.01083114 7.64524696 0.07793300
10: 0.62813099 1.35159142 0.28918956
11: 0.32457686 0.02591335 5.85365604
12: 0.42783663 1.21874776 0.38176176
13: 1.16153548 0.24340230 0.42469609
14: 1.58644074 0.51814087 0.50409917
15: 1.21327299 1.73146461 0.89982450
16: 0.51891446 0.47827326 0.06424925
17: 0.60590047 0.29575678 0.16249550
18: 0.39925252 0.02687194 0.52659081
19: 1.15769384 1.76426512 0.34584972
20: 0.06939622 0.37072691 0.23280432
要在上面创建的数据框中的 DT3 中查找行最大值的列名,请将以下代码添加到上面的代码段中 -
z1<-rexp(20)输出结果z2<-rexp(20)
z3<-rexp(20)
DT3<-data.table(z1,z2,z3)
DT3[,names(.SD)[max.col(.SD,ties.method="first")]]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] "z1" "z1" "z1" "z1" "z1" "z1" "z3" "z3" "z2" "z2" "z3" "z2" "z1" "z1" "z2"[16] "z1" "z1" "z3" "z2" "z2"
以上是 R 编程以在 data.table 对象中查找行最大值的列名。 的全部内容, 来源链接: utcz.com/z/347469.html