Concatenar columnas y agregarlas al comienzo del marco de datos

Noob aquí para R. Intentando resolver algo. Necesito construir una función que agregue una nueva columna al comienzo de un conjunto de datos. Esta nueva columna es una concatenación de los valores en otras columnas que el usuario especifica.

Imagine que este es el conjunto de datos llamado myDataSet:

col_1    col_2    col_3    col_4
bat      red      1        a
cow      orange   2        b
dog      green    3        c

El usuario podría usar la función así:

addPrimaryKey(myDataSet, cols=c(1,3,4))

para obtener el resultado de un nuevo conjunto de datos con las columnas 1, 3 y 4 concatenadas en una columna llamada ID y agregadas al principio, así:

ID        col_1    col_2    col_3    col_4
bat1a     bat      red      1        a
cow2b     cow      orange   2        b
dog4c     dog      green    3        c

Este es el guión en el que he estado trabajando pero lo he estado mirando tanto tiempo, creo que he cometido algunos errores. No puedo entender cómo obtener los números de columna de los argumentos en la función pegar correctamente.

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
}

Cualquier ayuda sería muy apreciada. Muchas gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta