Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于R中的优先级计数映射特征_R_Tidyverse - Fatal编程技术网

基于R中的优先级计数映射特征

基于R中的优先级计数映射特征,r,tidyverse,R,Tidyverse,我有一张这样的桌子: Feature priority n happy low 2 happy high 5 sad low 7 sad high 10 goofy high 2 mad low 4 mad high 3 worry high 5 worry low 5 我想给这些特性贴上标签,让优先级更频繁地出现 例如,快乐会被标记为高,因为它发生5次而低2次。

我有一张这样的桌子:

Feature priority n
happy   low      2
happy   high     5
sad     low      7
sad     high     10
goofy   high     2
mad     low      4
mad     high     3
worry   high     5
worry   low      5
我想给这些特性贴上标签,让优先级更频繁地出现

例如,快乐会被标记为高,因为它发生5次而低2次。 如果某个功能同时具有高优先级和低优先级,且两者相等,则优先级应为中等

预期产出:

Feature priority
happy   high
sad     high
goofy   high
mad     low
worry   medium

我们可以按“功能”分组,
过滤“n”为
max
的行,然后
通过将值替换为“中等”
来总结“优先级”,如果有多行(
n()>1
),如果
所有的
都存在“高”、“低”,然后返回“中等”或
else
返回优先级

library(dplyr)
df1 %>% 
   group_by(Feature) %>%
   filter(n == max(n)) %>% 
   summarise(priority = if(n() >1 & 
           all(c("high", "low") %in% priority)) "medium" else priority)
# A tibble: 5 x 2
#  Feature priority
#  <chr>   <chr>   
#1 goofy   high    
#2 happy   high    
#3 mad     low     
#4 sad     high    
#5 worry   medium  
库(dplyr)
df1%>%
分组依据(特征)%>%
过滤器(n==最大值(n))%>%
总结(优先级=如果(n()>1&
所有(c(“高”、“低”)%优先级中的%)“中”优先级)
#一个tibble:5x2
#功能优先级
#        
#1高飞高中
#2快乐高中
#3疯狂低
#4悲伤的高
#5中等
数据
df1这真是太棒了!谢谢我忘了提一件事。如果有领带,我想把它标为中号。你知道我如何实现它吗?@Eisen如果某个特定功能的最大值只有“低”优先级,那么这种情况会发生什么变化?如果某个特定功能的优先级较低,则优先级也会较低,反之亦然。@Eisen假设你的前两个值,即“快乐”的优先级为“高”,并且都有“n”作为5。在这种情况下,您希望它作为
medium
?@Eisen可能
df1%%>%group\u by(Feature)%%>%filter(n==max(n))%%>%mutate(priority=if(n()>1&all(priority='high'))“medium”else priority)%%>%distinct(Feature,.keep\u all=TRUE)
(不清楚具体的连接条件)
df1 <- structure(list(Feature = c("happy", "happy", "sad", "sad", "goofy", 
"mad", "mad", "worry", "worry"), priority = c("low", "high", 
"low", "high", "high", "low", "high", "high", "low"), n = c(2L, 
5L, 7L, 10L, 2L, 4L, 3L, 5L, 5L)), class = "data.frame", row.names = c(NA, 
-9L))