У меня есть dataframe данных съемки, и я хочу получить от него относительные частоты.ссылается на элемент вектора в R
Я сделал вектор уникальных имен рода из файла:
> CoralGenera <- unique(dfrm$V5)
Тогда для каждого элемента (род) в векторе (CoralGenera), я хочу, чтобы запустить эту функцию:
> mean(dfrm$V5 == "Genus")
Но он получает каждую строку, сохраненную как элемент в векторе, который будет использоваться в функции, которая удерживает меня.
Я пробовал:
> for (Genus in CoralGenera){
CGrfreq <- c(CGrfreq,mean(dfrm$Genus == Genus))}
который бежал, но вернулся вектор с большим количеством элементов, чем CoralGenera
Я пытался использовать lapply() вместо того, чтобы избежать копирования, но не может получить это работать:
> lapply(seq_along(CoralGenera), mean(dfrm$Genus == Genus))
> lapply(Genus(CoralGenera), mean(dfrm$Genus == "Genus"))
> lapply(CoralGenera, mean(dfrm$Genus == x))
> lapply(CoralGenera, mean(dfrm$Genus == CoralGenera[v]))
Каждый раз, когда он возвращает сообщение об ошибке, как это: Ошибка в match.fun (FUN): «означают (DFRM $ Genus == Genus) 'не является функцией, символом или символом
Это мой первый раз, написав такой код в R, поэтому любая помощь будет очень оценена.
'lapply (CoralGenera, function (x) mean (dfrm $ Род [dfrm $ Род% в% x]))'. Легче было бы 'с (dfrm, aggregate (Род, V5, среднее значение))'. Также можно использовать 'tapply', если вам нужен вектор вместо фрейма данных. Конструкция 'dfrm $ Genus == x' будет возвращать логический вектор, который' mean' будет принуждать к 0 и 1, а не значениям. –