Переменная коэффициента фильтра на основе количества - PullRequest
0 голосов
/ 25 мая 2018

У меня есть датафрейм, содержащий данные о ценах на жилье, с ценой и множеством переменных.Одна из этих переменных - это «область» для свойства, и я пытаюсь включить это в различные регрессии.Тем не менее, это фактор переменной с почти 3000 уровней.

Например:

table(df$sub_area)

La Jolla    
2

Carlsbad
5 

Esconsido 
1

.. и т. Д.

Я хочу отфильтровать те места, которые имеют только 1 счет, поскольку они не обладают большой предсказательной силой, нодобавить много времени вычислений.Однако я хочу заменить запись sub_area для этого свойства пустым или NA, так как я все еще хочу использовать остальную информацию для этого свойства, такую ​​как спальни, ванные комнаты и т. Д.

Для справки,индивидуальная запись собственности может выглядеть следующим образом:

ID Beds Baths City     Sub_area     sqm... etc   
1   4     2    San Diego   La Jolla   100....

Тогда я могу сделать

лм (цена ~ кровати + ванные + город + подрайон)

под новый, меньший подрайонпеременная с меньшим количеством уровней.

Я хочу сделать это, потому что большая часть предсказательной силы цены содержится в подрайоне для местоположений, над которыми я работаю.

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

В одну сторону:

areas <- names(which(table(df$Sub_area) > 10))
df$Sub_area[! df$Sub_area %in% areas] <- NA
0 голосов
/ 25 мая 2018

Создайте новый фрейм данных с количеством вхождений для каждого подрайона и сохраните подрайоны, которые встречаются как минимум дважды.

Затем добавьте NA s к исходному кадру данных, если подрайон не появится в отфильтрованном sub_area_count.

library(dplyr)

sub_area_count <- df %>% 
  count(sub_area) %>% 
  filter(n > 1)

boo <- !df$sub_area %in% sub_area_count$sub_area
df[boo, ]$sub_area <- NA
0 голосов
/ 25 мая 2018

Вы не привели воспроизводимый пример, но я думаю, что это сработает для определения тех мест, которые имеют значение == 1

count_1 <- as.data.frame(table(df$sub_area))
count_1 <- count_1$Var1[which(count_1$Freq==1)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...