为什么forcats的fct_lump不处理我的数据?
我已经离开R几个月了,所以可能会有一些后果 我在网上找到了这个数据集。我对它做了一些处理,所以我将在这里为什么forcats的fct_lump不处理我的数据?,r,forcats,R,Forcats,我已经离开R几个月了,所以可能会有一些后果 我在网上找到了这个数据集。我对它做了一些处理,所以我将在这里dput()它,但它最初来自 我尝试了很多东西,总是缩小重要的代码。最后,我使用了vignette(“forcats”)(我已经加载了tidyverse)中的示例代码,并使用不同的数据集进行了尝试: starwars %>% mutate(skin_color = fct_lump(skin_color, n = 5)) %>% count(skin_color, sort
dput()
它,但它最初来自
我尝试了很多东西,总是缩小重要的代码。最后,我使用了vignette(“forcats”)
(我已经加载了tidyverse
)中的示例代码,并使用不同的数据集进行了尝试:
starwars %>%
mutate(skin_color = fct_lump(skin_color, n = 5)) %>%
count(skin_color, sort = TRUE)
ter %>%
mutate(hair = fct_lump(region, n = 5)) %>%
count(hair, sort = TRUE)
gss_cat %>%
mutate(relig = fct_lump(relig, n = 5)) %>%
count(relig, sort = TRUE)
它在starwars
和gss_cat
上都能正常工作,但在ter
上不能正常工作(我的数据):
>ter%>%
+突变(头发=fct_肿块(区域,n=5))%>%
+计数(头发,排序=真)
#一个tibble:115x2
头发
1阿富汗1
2阿尔巴尼亚1
3阿尔及利亚1
4安哥拉1
5阿根廷1
6澳大利亚和大洋洲1
7澳大利亚1
8奥地利1
9阿塞拜疆1
10巴林1
#…还有105行
为什么会这样?为什么不在这里工作?看起来您希望将死亡人数少于5人的地区归为“其他”类别。这在base R中很简单
ter$region看起来您希望将死亡人数少于5人的地区合并为“其他”类别。这在base R中很简单
ter$地区每个国家/地区只有一个条目fct\u-lump
将把n
最不频繁的实例组合在一起,但是如果它们都具有相同的频率,您希望fct\u-lump
做什么?哦,是的。。。oops我可以使用哪个函数,以便根据恐怖主义死亡人数(GTD,2018)
(另一列)进行分类?每个国家只有一个条目fct\u-lump
将把n
最不频繁的实例组合在一起,但是如果它们都具有相同的频率,您希望fct\u-lump
做什么?哦,是的。。。哦,我可以使用哪个函数,以便根据恐怖主义死亡人数(GTD,2018)
(另一个专栏)进行分类?非常感谢!但你知道有没有办法做到这一点:ter$region[我曾想过使用mutate
,但该代码只适用于特定行,所以我不知道……mutate(region=ifelse('Terrorism detairies(GTD,2018)`<5,“Other”,region))
-注意,我不得不将反勾改为撇号,以便在注释中使用。拥有非法列名的另一个危险。为什么不将此列名称更改为“死亡”
——这将使您的生活更轻松,代码更易读!非常感谢你!但你知道有没有办法做到这一点:ter$region[我曾想过使用mutate
,但该代码只适用于特定行,所以我不知道……mutate(region=ifelse('Terrorism detairies(GTD,2018)`<5,“Other”,region))
-注意,我不得不将反勾改为撇号,以便在注释中使用。拥有非法列名的另一个危险。为什么不将此列名称更改为“死亡”
——这将使您的生活更轻松,代码更易读!
starwars %>%
mutate(skin_color = fct_lump(skin_color, n = 5)) %>%
count(skin_color, sort = TRUE)
ter %>%
mutate(hair = fct_lump(region, n = 5)) %>%
count(hair, sort = TRUE)
gss_cat %>%
mutate(relig = fct_lump(relig, n = 5)) %>%
count(relig, sort = TRUE)
> ter %>%
+ mutate(hair = fct_lump(region, n = 5)) %>%
+ count(hair, sort = TRUE)
# A tibble: 115 x 2
hair n
<fct> <int>
1 Afghanistan 1
2 Albania 1
3 Algeria 1
4 Angola 1
5 Argentina 1
6 Australasia & Oceania 1
7 Australia 1
8 Austria 1
9 Azerbaijan 1
10 Bahrain 1
# … with 105 more rows