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