R 按组删除低于特定行数/条件的行
我试图在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
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