У меня есть вопрос. Я хочу сделать гистограмму со средним значением и погрешностями, где она сгруппирована по двум факторам. Чтобы получить среднее значение и стандартные ошибки, я использовал функцию tapply.
Однако для одного из факторов я хочу опуститься на один уровень.
Итак, что я сделал, то сделал:
dataFE <- data[-which(plant=="FS"),] # this works fine, I get exactly the data set I want without the FS level of the factor plant
Затем, чтобы получить среднее значение и стандартную ошибку, я использую это:
means <- with(dataFE, as.matrix(tapply(leaves, list(plant, Orchestia), mean), nrow=2)
e <- with(dataFE, as.matrix(tapply (leaves, list(plant, Orchestia), function(x) sd(x)/sqrt(length(x))), nrow=2))
И там происходит что-то странное, он не считает ФС, однако ставит его в таблицу с NA:
row.names no yes
1 F 7.009022 5.307185
2 FS NA NA
3 S 2.837139 2.111054
Этого я не хочу, потому что, если я использую это в barplot2 (пакет gplots), я получу пустую полосу для FS, тогда как ее вообще не должно быть.
Так что у любого использования есть решение или другой метод, чтобы получить хороший барплот :). Спасибо, в любом случае!
dput
для этого. Без этого я просто сделаю предположение: ваш столбецplant
является фактором, и хотя вы удалили строки с этим значением,"level" FS
все еще существует. Используйтеlevels(data$plant)
, чтобы увидеть. Затем вы можете использоватьdroplevels
, чтобы избавиться от него. - person Justin   schedule 24.07.2012