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

R 按组删除低于特定行数/条件的行

R 按组删除低于特定行数/条件的行,r,dplyr,subset,R,Dplyr,Subset,我试图在R中对一个数据帧进行子集划分。它包含几个类别。需要删除每个类别的前几行。要删除的行数不一致,但有一行指示截断。如何删除每个组高于截止值的所有内容(包括该行) 示例数据: category <- c(rep("A", 3), rep("B", 5), rep("C", 4)) info <- as.character(c("Junk", "Border", "Useful", "This", "is", "Useless", "Border", "Yes please

我试图在R中对一个数据帧进行子集划分。它包含几个类别。需要删除每个类别的前几行。要删除的行数不一致,但有一行指示截断。如何删除每个组高于截止值的所有内容(包括该行)

示例数据:

category <- c(rep("A", 3), rep("B", 5), rep("C", 4))
info <- as.character(c("Junk", "Border", "Useful", 
    "This", "is", "Useless", "Border", "Yes please", 
    "Unwanted", "Row", "Border", "Required"))
example_df <- data.frame(category, info)
example_df$row_number <- 1:nrow(example_df)

category您可以使用
dplyr
软件包轻松实现这一点-

library(dplyr)

example_df %>% 
  group_by(category) %>% 
  filter(row_number() > which(info == "Border")) %>% 
  ungroup()

# A tibble: 3 x 2
  category info      
  <fct>    <fct>     
1 A        Useful    
2 B        Yes please
3 C        Required
库(dplyr)
示例_df%>%
组别(类别)%>%
过滤器(行号()>哪个(信息==“边框”))%>%
解组()
#一个tibble:3x2
类别信息
1 A有用的
是的
3 C必需
for(i in 1:length(border_rows)) {
  new_df <- example_df[-(start_rows[i]:border_rows[i]), ]
}
library(dplyr)

example_df %>% 
  group_by(category) %>% 
  filter(row_number() > which(info == "Border")) %>% 
  ungroup()

# A tibble: 3 x 2
  category info      
  <fct>    <fct>     
1 A        Useful    
2 B        Yes please
3 C        Required