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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage