0
Ich versuche, für jede Zeile die Spaltennamen mit den höchsten und zweithöchsten Werten zu identifizieren, wenn sie in der Zeile einen Wert ungleich Null haben. Datenbestand:Spaltenname und Wert der zweithöchsten Werte
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)
Das Ziel ist, die die höchste Spaltenwert, der einen beliebigen Wert ungleich Null in es im höchsten Spalte hat, und die Spalte mit dem zweithöchsten Wert, der einen beliebigen Wert ungleich Null hat in es in der zweiten Spalte:
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))
der Code für höchste ist:
DT$Highest <- apply(DT[-1], 1, function(x) max(as.numeric(names(which(x>0|x<0)))))
Prost