Как использовать lapply с формулой?
У меня есть проблема с функцией lapply, и я не нашел ни одного соответствующего вопроса, опубликованного ранее. Мне нужно применить тест перестановки ко всем элементам списка, однако я не могу правильно настроить lapply.
Я пытаюсь это
testperm <- lapply(test-list, FUN=perm.test, formula=(cover ~ group))
Функция Пермь.тест из пакета "exactRankTests" покрытие является зависимой (числовой) переменной, а группа-фактором.
Любые подсказки о том, как применить такую функцию, были бы очень признательны. Йенс
2 ответа:
При использовании формулы часто также требуется указать значение аргумента
data
, чтобы функция знала, какие данные использовать. Ваши наборы данных будут элементами списка, поэтому вам нужно использовать анонимную функцию, чтобы предоставить их в Пермь.тест.В этом случае попробуйте:
testperm <- lapply(test.list, FUN=function(x) perm.test(formula=(cover ~ group),data=x))
Это ваш Третий аргумент, на который вам нужно взглянуть.
lapply принимает (по крайней мере) два аргумента, список (ВКЛ. фрейм данных) и функция , FUN, которая работает на нем:
data(iris) df0 = iris[1:5,1:3] fnx = function(v){v^2} lapply(df0, fnx)
Lapply принимает необязательныйТретий аргумент, который должен соответствовать дополнительным аргументам, требуемым FUN и Не , предоставленным структурой данных первого аргумента lapply:
lapply( df0[,1], quantile, probs=1:3/4)