如何使用dplyr删除Identifier列字符数超过9的数据行?
用dplyr筛选Identifier列字符长度不超过9的行
解决方案代码
先加载dplyr和stringr包,再通过管道流结合筛选函数实现需求:
library(dplyr) library(stringr) # 原始数据框 df <- structure(list(Identifier = c("2021047.PR", "2021047.YB", "2021047.C", "2020048", "2021049.Arv", "2021049.BR", "2021049.C", "2021050" ), X1 = c(0L, 3L, 0L, 8L, 7L, 0L, 3L, 4L), X2 = c(0L, 0L, 5L, 6L, 0L, 3L, 0L, 0L), X3 = c(1L, 3L, 0L, 2L, 3L, 0L, 0L, 7L), X4 = c(9L, 0L, 3L, 0L, 0L, 8L, 1L, 0L)), class = "data.frame", row.names = c(NA, -8L)) # 执行筛选 filtered_df <- df %>% filter(str_length(Identifier) <= 9) # 查看结果 filtered_df
代码说明
str_length(Identifier):计算Identifier列每个元素的字符长度filter(str_length(Identifier) <= 9):仅保留字符长度不超过9的行,自动剔除长度超标的行
运行结果
执行后输出与期望一致:
Identifier X1 X2 X3 X4 1 2021047.C 0 5 0 3 2 2020048 8 6 2 0 3 2021049.C 3 0 0 1 4 2021050 4 0 7 0
内容的提问来源于stack exchange,提问作者ecology
相关产品推荐
相关产品推荐

