Ich habe in diesem Format eine csv bevölkern:zu schaffen und neue Spalten in einem Datenrahmen basierend auf den Werten von vorhandenen Spalten
Col1_Status Col1_Value Col2_Status Col2_Value Col3_Status Col3__Value
LOW 5 HIGH 5 LOW 5
LOW 8 HIGH 8 LOW 8
HIGH 82 HIGH 8 LOW 7
HIGH 83 NORMAL 8 LOW 7
HIGH 82 NORMAL 8 LOW 7
Ich möchte erstellen Sie einen neuen Datenrahmen mit der hohen und niedrigen als Spalt, zum Beispiel:
Col1_High Col1_Low Col2_High Col2_Low Col3_High Col3_Low
82 5 5 NA NA 5
83 8 8 NA NA 8
82 NA 8 NA NA 7
NA NA NA NA NA 7
NA NA NA NA NA 7
Was ist der beste Weg, um darüber zu gehen?
Bisher denke ich:
#extract the Status Columns from original file into DataFrame
statusDF <- ret[grepl("Status", colnames(ret))]
#extract the Value Columns from original file into DataFrame
originalValueDF <- ret[grepl("Value", colnames(ret))]
#create new columns attribute_high and attribute_low
for(i in names(originalValueDF)){
newValueDF <- originalValueDF[[paste(i, 'High', sep = "_")]]
newValueDF <- originalValueDF[[paste(i, 'Low', sep = "_")]]
}
#populate both columns based on value in attribute status column
for(i in names(originalValueDF)){
if (originalValueDF$i == "High"){
temp <- # stuck here
}
}
Jeder beraten
'Col3_Low = c (5, 8)' ... wobei 7? Was sind deine Kriterien? – Sotos
Entschuldigung, ich gab nur die ersten zwei Tupel als die gewünschte Ausgabe. Das Kriterium besteht darin, die Statusspalte zu betrachten und sie in eine neue Spalte hoch oder niedrig zu extrahieren. – ukbaz
haben den Ausgabedatenrahmen aktualisiert – ukbaz