R语言:如何根据特定行的值删除列
在R中删除Total行值小于10的列
首先把你的表格转换成R的数据框,这里先模拟你的数据:
# 模拟你的数据 df <- data.frame( ID = c("A", "B", "C", "Total"), Column_A = c(5, 0, 7, 12), Column_B = c(1, 0, 1, 2), Column_C = c(2, 3, 1, 6), Column_D = c(10, 15, 22, 47), stringsAsFactors = FALSE )
方法一:基础R操作(无需额外包)
- 找到Total行的位置:
total_row <- which(df$ID == "Total")
- 提取Total行中各数值列的数值(排除ID列):
total_values <- df[total_row, -1]
- 确定要保留的列:ID列必须保留,其他列只要Total值≥10就保留
keep_cols <- c(TRUE, total_values >= 10)
- 筛选得到新的数据框:
filtered_df <- df[, keep_cols]
方法二:用dplyr包(更简洁的tidy风格)
如果你习惯用tidyverse系列工具,先加载dplyr:
library(dplyr)
然后一行代码完成筛选:
filtered_df <- df %>% select( ID, where(~ .[df$ID == "Total"] >= 10) )
两种方法最终得到的filtered_df都会保留ID、Column_A和Column_D列,符合你的需求。
内容的提问来源于stack exchange,提问作者Muller I.
相关产品推荐
相关产品推荐

