Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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_Dplyr - Fatal编程技术网

R 从列中包含多个条目的数据框中删除行

R 从列中包含多个条目的数据框中删除行,r,dplyr,R,Dplyr,对于我的数据中的每个CASE\u ID,应该有1个RF和1个SJ记录 在伪代码中:对于每个CASE_ID、TIN和MPIN,计算每个TIN和MPIN组合的类型数,其中计数大于1,然后使用SJ删除该行 在我上面的例子中,由于TIM SHORT同时拥有RF和SJ记录,我希望为他删除SJ记录 这是上面的数据框: example_df <- data.frame(CASE_ID = c(123,123,123),TIN = c("BOB","TIM",&q

对于我的数据中的每个
CASE\u ID
,应该有1个
RF
和1个
SJ
记录

在伪代码中:对于每个CASE_ID、TIN和MPIN,计算每个TIN和MPIN组合的类型数,其中计数大于1,然后使用SJ删除该行

在我上面的例子中,由于TIM SHORT同时拥有RF和SJ记录,我希望为他删除SJ记录

这是上面的数据框:

example_df <- data.frame(CASE_ID = c(123,123,123),TIN = c("BOB","TIM","TIM"),MPIN = c("LONG","SHORT","SHORT"),TYPE = c('SJ','RF','SJ'))

example\u df我假设您只需要一组CASE\u ID、TIN、MPIN的类型计数

t%groupby(CASE\u ID,TIN,MPIN)%>%summary(TYPE\u COUNT=n\u distinct(TYPE))


希望能奏效。

我想你的意思是这样的:

example_df %>% group_by(TIN) %>% 
  mutate(n = n()) %>% 
  ungroup %>% 
  mutate(take = ifelse(n == 1, 1, ifelse(n == 2 & TYPE == "RF", 1,  0))) %>% 
  filter(take == 1) %>% 
  select(-c(n, take))
t <- example_df %>% group_by(CASE_ID,TIN,MPIN) %>% mutate(TYPE_COUNT = sum(TYPE == "RF" & TYPE == "SJ"))
example_df %>% group_by(TIN) %>% 
  mutate(n = n()) %>% 
  ungroup %>% 
  mutate(take = ifelse(n == 1, 1, ifelse(n == 2 & TYPE == "RF", 1,  0))) %>% 
  filter(take == 1) %>% 
  select(-c(n, take))