如何在R中过滤像Excel这样的“字符”
Posted
技术标签:
【中文标题】如何在R中过滤像Excel这样的“字符”【英文标题】:How to filtering "character" like Excel in R 【发布时间】:2018-04-26 21:26:56 【问题描述】:·这是桌子,名字:x
==================================================================
# A tibble: 6 x 10
ID blood age hair_color name height weight distance expiry
<dbl> <chr> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 P 60 yellow john 999 128 110 120
2 2 N 52 black tom 999 180 156 160
3 3 P 100 white tom 999 190 140 999
4 4 N 84 yellow tom 112 136 126 122
5 5 P 56 brown tom 64 230 150 130
6 6 P 105 green dan 999 142 150 999
===================================================================
.Expected Image:
===================================================================
ID blood age hair_color name height weight distance expiry
<dbl> <chr> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 P 60 yellow john 999 128 110 120
2 4 N 84 yellow tom 112 136 126 122
===================================================================
.背景:初学者
移动者,如何
1.用“包含”功能过滤数据? -like:提取列中的数据:hair_color ,包含“ye”
2.过滤多条件数据? -like:在列:hair_color 中,包含“ye” 和 在 column:name 中,以“to”开头
简单地想象一下如何做一些与在 Excel 中工作完全一样的事情, 提前致谢。
【问题讨论】:
Filtering a data.frame的可能重复 非常感谢。它适用于使用 dplyr 包 --filter 功能。但我仍然无法将过滤功能与包含命令混合使用。 来自帮助,contains
和相关函数“允许您根据变量名称选择变量”。关键部分是“选择变量”,而不是“过滤行”。在data.frame
中,变量是一列。使用grepl
,也许是dplyr::filter(x, grepl("ye", hair_color))
。它在 dplyr
、ala x[grepl("ye", x$hair_color),]
或使用 subset
之外也可以正常工作,如 KarstenW 的回答(尽管 subset
警告不要以编程方式使用)。
【参考方案1】:
在交互模式下,你可以使用subset
:
1)
subset(x, grepl("ye", hair_color, fixed=TRUE))
2)
subset(x, grepl("ye", hair_color, fixed=TRUE) & grepl("^to", name))
在第二个示例中,插入符号^
表示正则表达式中的“开始于”。
简而言之,通过grepl
可以实现和扩展excel 中已知的简单文本过滤功能。正则表达式的短期课程有助于释放其真正的力量。
【讨论】:
非常感谢!我想从 Excel 中找回我的手和腿。 不客气!如果对您有帮助,请随时投票或接受答案。以上是关于如何在R中过滤像Excel这样的“字符”的主要内容,如果未能解决你的问题,请参考以下文章