У меня есть вектор символов классов, которые я хотел бы применить к кадру данных, чтобы преобразовать текущий класс каждого поля в этом фрейме данных в соответствующую запись в векторе. Например:Применение вектора классов к dataframe
frame <- data.frame(A = c(2:5), B = c(3:6))
classes <- c("character", "factor")
С помощью петли, я знаю, что это может быть выполнено с использованием lapply. Например:
for(i in 1:2) { frame[i] <- lapply(frame[i], paste("as", classes[i], sep = ".")) }
Для моих целей, однако, для цикла не может работать. Есть ли еще одно решение, которое мне не хватает?
Заранее благодарю за ваш ввод!
Примечание: Мне сообщили, что это может быть дубликат this post. И, да, мой вопрос подобен этому. Но я раньше рассматривал подход class(). И это, похоже, не эффективно справляется с преобразованием полей в факторы. С другой стороны, сдержанный подход делает это хорошо. Но, к сожалению, я не могу использовать for-loop в этом случае
Что является источником данных? Почему вы не применяете классы при чтении данных вместо их применения позже? – A5C1D2H2I1M1N2O1R2T1
Также вы можете использовать 'lapply' без явного цикла' for'? Подобно 'frame [] <- lapply (seq_along (frame), function (x) {FUN <- paste (" as ", classes [x], sep =". "); Match.fun (FUN) (frame [[ x]])}) '? – A5C1D2H2I1M1N2O1R2T1