# The order of my `class` variable is:
complete.cases <- c("Class_0_1","Class_1_3","Class_3_9", "Class_9_25","Class_25_50")   

# In my ds:
nest <- c(2,2,2,2,2,3,3,3,3)
TA <- c(2.3,5.9,8.7,11.8,14.9,11.9,8.8,5.7,2.4)
class <- c("Class_0_1","Class_1_3","Class_3_9","Class_3_9","Class_9_25","Class_1_3","Class_1_3","Class_1_3","Class_3_9")
my.ds <- data.frame(nest,TA,class)
my.ds
      nest   TA      class
1    2  2.3  Class_0_1
2    2  5.9  Class_1_3
3    2  8.7  Class_3_9
4    2 11.8  Class_3_9
5    2 14.9 Class_9_25
6    3 11.9  Class_1_3
7    3  8.8  Class_1_3
8    3  5.7  Class_1_3
9    3  2.4  Class_3_9

# About ds information:
nest <- c(2,3)
class_max <- c("Class_3_9","Class_1_3")
info.ds <- data.frame(nest,class_max)

现在我想要删除规则中的行,my.ds$classinfo.ds$class_max按嵌套删除,如果不是可以的.

我的最终数据帧:必须是:

# new.ds
#   nest   TA      class
# 1    2  2.3  Class_0_1
# 2    2  5.9  Class_1_3
# 3    2  8.7  Class_3_9
# 4    2 11.8  Class_3_9
# 5    3 11.9  Class_1_3
# 6    3  8.8  Class_1_3
# 7    3  5.7  Class_1_3

拜托,有什么可以帮忙的吗?

推荐答案

您可以将class转换为ordered factor对象,并使用ordered(x)factor(x, ordered = TRUE)为其定义custom order.

library(dplyr)

my.ds %>%
  mutate(class = ordered(class, levels = complete.cases)) %>%
  left_join(info.ds, by = 'nest') %>%
  filter(class <= class_max) %>%
  select(-class_max)

#   nest   TA     class
# 1    2  2.3 Class_0_1
# 2    2  5.9 Class_1_3
# 3    2  8.7 Class_3_9
# 4    2 11.8 Class_3_9
# 5    3 11.9 Class_1_3
# 6    3  8.8 Class_1_3
# 7    3  5.7 Class_1_3

R相关问答推荐

从多个前置日期中获取最长日期

工作流程_set带有Dplyrr风格的 Select 器,用于 Select 结果和预测因子R

r中的stat_difference函数不起作用

隐藏e_mark_line的工具提示

如何在区分不同条件的同时可视化跨时间的连续变量?

如何计算多个日期是否在一个日期范围内

无法正确设置动态创建的Quarto标注的格式

用约翰逊分布进行均值比较

为什么我使用geom_density的绘图不能到达x轴?

从R中的对数正态分布生成随机数的正确方法

如何将Which()函数用于管道%>;%

KM估计的差异:SvyKm与带权重的调查

如何平滑或忽略R中变量的微小变化?

WRS2包中带有bwtrim的简单ANOVA抛出错误

如何将一些单元格的内容随机 Select 到一个数据框中?

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

基于R中的辅助向量中的值有条件地连接向量中的字符串

从data.table列表中提取特定组值,并在R中作为向量返回

有没有一种方法可以用非标准参数编写一个定制的ggploy主题函数?

使用R中的`quote()`函数生成多变量表达式