Объединить столбцы и добавить их в начало фрейма данных
Нуб здесь для Р. Пытаюсь что-то выяснить. Мне нужно построить функцию, которая добавляет новый столбец в начало набора данных. Этот новый столбец представляет собой объединение значений в других столбцах, указанных пользователем.
Представьте, что это набор данных с именем myDataSet:
col_1 col_2 col_3 col_4
bat red 1 a
cow orange 2 b
dog green 3 c
Пользователь может использовать функцию следующим образом:
addPrimaryKey(myDataSet, cols=c(1,3,4))
чтобы получить результат нового набора данных со столбцами 1, 3 и 4, объединенными в столбец с именем ID и добавленными в начало, вот так:
ID col_1 col_2 col_3 col_4
bat1a bat red 1 a
cow2b cow orange 2 b
dog4c dog green 3 c
Это сценарий, над которым я работал, но я так долго на него смотрел, думаю, что допустил несколько ошибок. Я не могу понять, как правильно получить номера столбцов из аргументов в функции вставки.
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
}
Любая помощь будет принята с благодарностью. Спасибо