0
行のゼロに等しくない値を持つ列名を、最大値と2番目に高い値で識別しようとしています。データセット:2番目に高い値の列名と値
DT=data.frame(Row=c(1,2,3,4,5),Price=c(2.1,2.1,2.2,2.3,2.5),
'2.0'= c(100,300,700,400,0),
'2.1'= c(400,200,100,500,0),
'2.2'= c(600,700,200,100,-200),
'2.3'= c(300,0,-300,100,100),
'2.4'= c(400,0,0,500,600),
'2.5'= c(0,200,0,800,-100),check.names=FALSE)
目的である最高カラムでゼロに等しくない任意の値を有し、最高列の値、及びゼロに等しくない任意の値を有する第2の最高値を持つ列を有していますそれは、2列目:
DT=data.frame(Row=c(1,2,3,4,5),Price=c(2.1,2.1,2.2,2.3,2.5),
'2.0'= c(100,300,700,400,0),
'2.1'= c(400,200,100,500,0),
'2.2'= c(600,700,200,100,-200),
'2.3'= c(300,0,-300,100,100),
'2.4'= c(400,0,0,500,600),
'2.5'= c(0,200,0,800,-100),check.names=FALSE,
Highest=c(2.4,2.5,2.3,2.5,2.5),Second=c(2.3,2.2,2.3,2.4,2.4))
最高のコードは次のとおりです。
DT$Highest <- apply(DT[-1], 1, function(x) max(as.numeric(names(which(x>0|x<0)))))
乾杯