r - 在选择函数之外使用starts_with() 来定义向量
问题描述
我有一个很大的原始 data.frame,我在整个分析过程中过滤以形成较小的 data.frame。
原始 data.frame 的格式为:
> head(Moment_all)
Exterior Interior Sections Spacing UG Names
1 0.02736669 0.03067941 84-12 12 UG-84 Sample 1
2 0.53220402 0.53739861 124-9 9 UG-124 AASHTO
3 0.54016470 0.54016538 116-9 9 UG-116 Sample 10
4 0.54151540 0.51516650 124-9 9 UG-124 Sample 8
5 0.54663913 0.52989489 124-9 9 UG-124 Sample ./124-9-DIA
6 0.54960475 0.51772120 116-9 9 UG-116 Mean
我将要为其中一个子集排除的行定义为:
notbaseline <- c(starts_with("Sample ./"),"Mean","AASHTO")
然后我将新的 data.frame 定义为:
data.exterior <- Moment_all[!grepl(paste(notbaseline,collapse = "|"),Moment_all$Names),]
问题是我不能starts_with
在保护列时使用,并且我需要过滤的各种类型的字符并不总是具有直接调用它们的明显模式。
有没有更好的方法根据列中的字符删除行Names
?
谢谢!
解决方案
starts_with()
是一个dplyr
旨在帮助选择数据框的特定列的函数。
您想要做的是如下所示:
library(dplyr)
library(stringr)
filter(Moment_all, str_detect(Names, "Sample \\./", negate = TRUE), !Names %in% c("Mean", "AASHTO"))
推荐阅读
- sql-server - SQL Server 优化
- gojs - gojs 自定义绑定作为 textBlock 的一部分传递给函数
- laravel - Laravel/Vue - JWT 令牌记住我
- mysql - 在 3 个不同表之间进行 2 次 JOIN 后查找 MAX
- php - 尽可能使用 slug 而不是 ID
- django - 如何在 django-notifications-hq 中隐藏 0 通知计数
- python - 将回归树输出转换为 pandas 表
- terraform - 如何根据条件跳过 terraform 资源中的可选参数
- visual-studio - 控制器文件夹内的新剃须刀视图
- prometheus - 使用带有身份验证的黑盒导出器