Verketten Sie die Spalten und fügen Sie sie am Anfang des Datenrahmens hinzu
Noob hier zu R. Der Versuch, etwas herauszufinden. Ich muss eine Funktion erstellen, die eine neue Spalte am Anfang eines Datensatzes hinzufügt. Diese neue Spalte ist eine Verkettung der Werte in anderen vom Benutzer angegebenen Spalten.
Stellen Sie sich vor, dies ist der Datensatz mit dem Namen myDataSet:
col_1 col_2 col_3 col_4
bat red 1 a
cow orange 2 b
dog green 3 c
Der Benutzer könnte die Funktion folgendermaßen verwenden:
addPrimaryKey(myDataSet, cols=c(1,3,4))
So erhalten Sie das Ergebnis eines neuen Datensatzes mit den Spalten 1, 3 und 4, die zu einer Spalte namens ID verkettet und am Anfang hinzugefügt wurden:
ID col_1 col_2 col_3 col_4
bat1a bat red 1 a
cow2b cow orange 2 b
dog4c dog green 3 c
Dies ist das Skript, an dem ich gearbeitet habe, aber ich habe es so lange angestarrt, dass ich ein paar Fehler gemacht habe. Ich kann nicht herausfinden, wie die Spaltennummern von den Argumenten in die Einfügefunktion richtig erhalten werden.
addPrimaryKey <- function(df, cols=NULL){
newVector = rep(NA, length(cols)) ##initialize vector to length of columns
colsN <- as.numeric(cols)
df <- cbind(ID=paste(
for(i in 1:length(colsN)){
holder <- df[colsN[i]]
holder
}
, sep=""), df) ##concatenate the selected columns and add as ID column to df
df
}
Jede Hilfe wäre sehr dankbar. Vielen Dank