Я знаю, что есть разные подобные вопросы, и как таковые я закладываю для повторения. Тем не менее, хотя я нашел полезную информацию по этой теме, ничего, что я пытался, кажется, работает.Передача аргумента функции ddply
Короче говоря, я использую ddply внутри функции и пытаюсь передать аргумент функции функции ddply.
Упрощенный пример с использованием набора данных iris
IG_test <-function(data, feature){
dd<-ddply(data, feature, here(summarise), N=length(feature))
return(dd)
}
IG_test(iris, "Species")
Это должно возвращать количество записей для каждого вида, а возвращает 1 в каждом случае.
Если я указываю «вид» непосредственно в length()
, я получаю то, что я ищу
IG_test <-function(data, feature){
dd<-ddply(data, feature, here(summarise), N=length(Species))
return(dd)
}
IG_test(iris, "Species")
Species N
1 setosa 50
2 versicolor 50
3 virginica 50
Самые последние вопросы, описывающие подобные проблемы предлагают использовать here()
для summarize()
функции в ddply, чтобы сказать ddply, где искать переменную. это работает так же, как feature
(без here()
мы получаем ошибку), однако он не возвращает длину, как ожидалось.
Любые идеи?
замечательный! это именно то, что я искал, спасибо. Спасибо за объяснение. – philjet
добро пожаловать! –