You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除DataFrame中MRT出现在MET左侧的所有行?

筛选排列DataFrame中"MRT"出现在"MET"右侧的记录

我们需要从包含所有8元素唯一排列的DataFrame中,移除所有"MRT"位于"MET"左侧的行,只保留"MRT"在"MET"右侧的记录。以下是具体实现:

完整代码

library(gtools)

# 生成所有8元素的唯一排列并转为DataFrame
Vector <- c("MRT", "FRU", "MRNT", "FRNU", "MET", "MEU", "FENT", "FENU")
All.orders <- permutations(8, 8, Vector, repeats.allowed = FALSE)
All.orders <- data.frame(All.orders)

# 筛选符合条件的行:仅保留"MRT"位置在"MET"之后的记录
filtered_df <- All.orders[apply(All.orders, 1, function(row) {
  # 获取两个目标元素的列索引并比较
  which(row == "MRT") > which(row == "MET")
}), ]

代码说明

  • apply(All.orders, 1, function(row) {...}):遍历DataFrame的每一行,对每行执行判断逻辑
  • which(row == "MRT") 和 which(row == "MET"):分别获取当前行中"MRT"和"MET"所在的列位置
  • 索引值越大代表在越靠右的位置,因此当which(row == "MRT") > which(row == "MET")时,说明"MRT"在"MET"右侧,该行需要保留

内容的提问来源于stack exchange,提问作者Thom L.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:12:19