У меня есть фрейм данных с 251 наблюдением и 45 переменными. В середине фрейма данных есть 6 наблюдений, которые я бы хотел исключить из моего анализа. Все 6 относятся к одному уровню фактора. Легко создать новый фрейм данных, который при распечатке, по-видимому, исключает 6 наблюдений. Однако когда я использую новый фрейм данных для построения графиков переменных по рассматриваемому фактору, предположительно исключенный уровень все еще включается в график (без наблюдений). Использование str () подтверждает, что уровень все еще присутствует в некоторой форме. Кроме того, индекс для нового фрейма данных пропускает 6 значений, в которых ранее находились наблюдения.
Как я могу создать новый фрейм данных, который исключает 6 наблюдений и не продолжает распознавать исключенный уровень фактора при построении графика? Можно ли сделать новый фрейм данных для «переиндексации», чтобы новый индекс не пропускал значения, ранее присвоенные исключенному уровню фактора?
Я привел пример с составленными данными:
# ---------------------------------------------
# data
char <- c( rep("anc", 4), rep("nam", 3), rep("oom", 5), rep("apt", 3) )
a <- 1:15 / pi
b <- seq(1, 8, .5)
d <- rep(c(3, 8, 5), 5)
dat <- data.frame(char, a, b, d)
dat
# two ways to remove rows that contain a string
datNew1 <- dat[-which(dat$char == "nam"), ]
datNew1
datNew2 <- dat[grep("nam", dat[ ,"char"], invert=TRUE), ]
datNew2
# plots still contain the factor level that was excluded
boxplot(datNew1$a ~ datNew1$char)
boxplot(datNew2$a ~ datNew2$char)
# str confirms that it's still there
str(datNew1)
str(datNew2)
# ---------------------------------------------