Я пытаюсь использовать общую функцию для работы с каждым столбцом фрейма данных, где операция будет варьироваться в зависимости от класса столбца ,Использование функций plyr и generic для работы с каждым столбцом кадра данных при сохранении имен
У меня возникли проблемы с предоставлением функции доступа к именам столбцов, а также отправкой столбцов в правильный метод.
df <- data.frame(f1 = factor(rep(1:3, 2)))
myfun <- function(x){
UseMethod("myfun", x)
}
myfun.factor <- function(x){
print("Using factor method")
print(names(x))
print(class(x))
}
myfun.default <- function(x){
print("Using default method")
print(names(x))
print(class(x))
}
Применение в виде списка дает правильную отправку, но раздевает имена из колонн
library(plyr)
l_ply(df, myfun)
[1] "Using factor method"
NULL
[1] "factor"
ходатайствующих как массив сохраняет имена, но не дает правильные имена
a_ply(df, 2, myfun)
[1] "Using default method"
[1] "f1"
[1] "data.frame"
Есть ли опрятный способ получить максимум от обоих или am I stuck with the method described in the answer to this question?