У меня есть столбец данных (Percent.Plant.Parasites), который имеет некоторые НС. Я хочу взять среднее значение этих данных, отсортированных по фактору «Этап» (т.е. stage1 Mean = x, stage2 Mean = y и т. Д.). Я пытался это сделать, используяИспользование наложения данных с NA
tapply(rawdata$Percent.Plant.Parasites, rawdata$Stage, mean)
Однако, я получаю NA, потому что в данных есть НС. Я не верю, что есть вариант na.rm для tapply (есть?), Так что я пытался вычислить среднее каждого отдельного фактора стадии с использованием:
mean(subset(rawdata,subset=Stage=="stage1")$Percent.Plant.Parasites, na.rm=TRUE)
не дали никаких результатов. Вместо этого я получил ошибку:
In mean.default(subset(rawdata, subset = Stage == "Kax")$Percent.Plant.Parasites, :
аргумент не является числовым или логическим: возвращающегося NA
Однако, когда я делаю:
typeof(subset(rawdata,subset=Stage=="Kax")$Percent.Plant.Parasites)
я integer
Любые идеи, где я «Не так?
Спасибо.
Try 'означает (подмножество (RAWDATA, Стадия == "stage1") $ Percent.Plant.Parasites, na.rm = TRUE) ' – mlegge
Структуры' tapply' is: 'tapply (X, INDEX, FUN = NULL, ..., simplify = TRUE)'. Вы можете попытаться указать 'na.rm = TRUE' в параметре' ... 'следующим образом:' tapply (rawdata $ Percent.Plant.Parasites, rawdata $ Stage, mean, na.rm = TRUE) ' –
что такое класс '(RAWDATA $ Percent.Plant.Parasites)'? Я уверен, что это «фактор», и в этом случае вам, вероятно, нужно будет вызвать 'rawdata $ Percent.Plant.Parasites <- as.numeric (as.character (Percent.Plant.Parasites))' – Jthorpe