Есть есть , что-то не так с этими данными ... но давайте посмотрим, смогу ли я воспроизвести достаточно.(Предварительно: не идеально, но у нас пока недостаточно информации, чтобы можно было это значительно улучшить.)
Некоторые примеры данных, написанные вручную для проверки того, что я думаю о ваших пропущенных строках:
x <- structure(
list(n = structure(
list(x = structure(c(3L, 7L, 6L, 2L, 10L, 9L, 1L, 8L, 4L, 5L),
.Label = c("112916", "116806", "118489", "146802", "154999",
"157333", "170238", "183345", "194348", "194384"),
class = "factor"),
freq = c(2L, 1L, 3L, 1L, 2L, 3L, 3L, 1L, 2L, 1L)),
class = "data.frame", row.names = c(NA, -10L) ) ),
class = "data.frame", row.names = c(NA, -10L)
)
str(x)
# 'data.frame': 10 obs. of 1 variable:
# $ n:'data.frame': 10 obs. of 2 variables:
# ..$ x : Factor w/ 10 levels "112916","116806",..: 3 7 6 2 10 9 1 8 4 5
# ..$ freq: int 2 1 3 1 2 3 3 1 2 1
Это не повторяет вашу ошибку:
str( x %>% filter(n$freq >= 2) )
# 'data.frame': 6 obs. of 1 variable:
# $ n:'data.frame': 6 obs. of 2 variables:
# ..$ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# ..$ freq: int 2 3 2 3 3 2
Возможно, это будет работать вместо вас?
str( subset(x, n$freq >= 2) )
# 'data.frame': 6 obs. of 1 variable:
# $ n:'data.frame': 6 obs. of 2 variables:
# ..$ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# ..$ freq: int 2 3 2 3 3 2
К сожалению, это может сработать для вас, но имеет эффектсглаживания базы данных (без намерения):
str( x[ x$n$freq >= 2, ] )
# 'data.frame': 6 obs. of 2 variables:
# $ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# $ freq: int 2 3 2 3 3 2
Похоже, что этот вложенный фрейм довольно просто распутать:
str( x[[1]] )
# 'data.frame': 10 obs. of 2 variables:
# $ x : Factor w/ 10 levels "112916","116806",..: 3 7 6 2 10 9 1 8 4 5
# $ freq: int 2 1 3 1 2 3 3 1 2 1
Итак, давайте попробуем заменить вложенный фрейм на "нормальный "один:
xflat <- x[[1]]
str( filter(xflat, freq >= 2) )
# 'data.frame': 6 obs. of 2 variables:
# $ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# $ freq: int 2 3 2 3 3 2
str( subset(xflat, freq >= 2) )
# 'data.frame': 6 obs. of 2 variables:
# $ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# $ freq: int 2 3 2 3 3 2
str( xflat[ xflat$freq >= 2, ] )
# 'data.frame': 6 obs. of 2 variables:
# $ x : Factor w/ 10 levels "112916","116806",..: 3 6 10 9 1 4
# $ freq: int 2 3 2 3 3 2