R 基于计数的过滤因子变量

R 基于计数的过滤因子变量,r,regression,R,Regression,我有一个包含房价数据的数据框,里面有价格和很多变量。其中一个变量是房地产的“子区域”,我试图将其纳入各种回归中。然而,它是一个因子变量,几乎有3000个水平 例如: table(df$sub_area) La Jolla 2 Carlsbad 5 Esconsido 1 等等 我想过滤掉那些只有1个计数的地方,因为它们没有提供太多的预测能力,但增加了大量的计算时间。但是,我希望将该属性的sub_区域条目替换为空白或NA,因为我仍然希望使用该属性的其余信息,例如卧室、浴室等 作

我有一个包含房价数据的数据框,里面有价格和很多变量。其中一个变量是房地产的“子区域”,我试图将其纳入各种回归中。然而,它是一个因子变量,几乎有3000个水平

例如:

table(df$sub_area)

La Jolla    
2

Carlsbad
5 

Esconsido 
1
等等

我想过滤掉那些只有1个计数的地方,因为它们没有提供太多的预测能力,但增加了大量的计算时间。但是,我希望将该属性的sub_区域条目替换为空白或NA,因为我仍然希望使用该属性的其余信息,例如卧室、浴室等

作为参考,单个属性条目可能如下所示:

ID Beds Baths City     Sub_area     sqm... etc   
1   4     2    San Diego   La Jolla   100....
那我就可以了

lm(价格~床+浴室+城市+子区域)

在新的、更小的sub_区域变量下,级别更少


我之所以这么做,是因为我工作的地点的sub_区域包含了大部分预测价格能力

您没有给出一个可复制的示例,但我认为这将有助于识别计数=1的位置

count_1 <- as.data.frame(table(df$sub_area))
count_1 <- count_1$Var1[which(count_1$Freq==1)]

count\u 1您没有给出一个可重复的示例,但我认为这将有助于识别count==1的位置

count_1 <- as.data.frame(table(df$sub_area))
count_1 <- count_1$Var1[which(count_1$Freq==1)]
count_1单向:

areas <- names(which(table(df$Sub_area) > 10))
df$Sub_area[! df$Sub_area %in% areas] <- NA
10区)
df$Sub_区域[!df$Sub_区域%在%区域中]单向:

areas <- names(which(table(df$Sub_area) > 10))
df$Sub_area[! df$Sub_area %in% areas] <- NA
10区)

df$Sub_area[!df$Sub_area%in%area]创建一个新的数据帧,其中包含每个子区域的出现次数,并保留至少出现两次的子区域

如果子区域未出现在过滤后的
sub\u区域\u计数中,则将
NA
s添加到原始数据帧中

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
库(dplyr)
子区域计数%
计数(子区域)%>%
过滤器(n>1)

boo创建一个新的数据帧,其中包含每个分区的出现次数,并保持至少出现两次的分区

如果子区域未出现在过滤后的
sub\u区域\u计数中,则将
NA
s添加到原始数据帧中

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
库(dplyr)
子区域计数%
计数(子区域)%>%
过滤器(n>1)
boo看看是不是这样:。或者是这个。看看是不是这个:。或者是这个。