dplyr中select()的contains()和MATCHS()之间的差异
我决定花一些时间彻底学习dplyr。我刚刚遇到了dplyr中select()的contains()和MATCHS()之间的差异,r,dataframe,dplyr,R,Dataframe,Dplyr,我决定花一些时间彻底学习dplyr。我刚刚遇到了select()函数及其附带的一些辅助函数 仅仅是玩弄一下,我没有发现包含的和匹配的辅助函数之间有任何区别 有人能举一个例子说明如何将它们用于不同的目的吗 谢谢,不同之处在于,匹配可以使用正则表达式作为模式来匹配列名,选择,而包含进行子字符串或全名匹配的文字匹配。它在?选择帮助程序中描述为 contains():包含文字字符串 matches():匹配正则表达式 考虑一个简单的示例,其中我们希望选择具有子字符串“col”的列 df1 <- d
select()
函数及其附带的一些辅助函数
仅仅是玩弄一下,我没有发现包含的和匹配的辅助函数之间有任何区别
有人能举一个例子说明如何将它们用于不同的目的吗
谢谢,不同之处在于,匹配
可以使用正则表达式作为模式来匹配列名,选择
,而包含
进行子字符串或全名匹配的文字匹配。它在?选择帮助程序中描述为
contains():包含文字字符串
matches():匹配正则表达式
考虑一个简单的示例,其中我们希望选择具有子字符串“col”的列
df1 <- data.frame(colnm = 1:5, col1 = 24, col2 = 46)
df1 %>%
select(contains("col"))
# colnm col1 col2
#1 1 24 46
#2 2 24 46
#3 3 24 46
#4 4 24 46
#5 5 24 46
如果失败,因为它正在查找列名子字符串“col\\d+”
而匹配
采用正则表达式
并匹配那些模式包含文本字符串匹配
正则表达式,即匹配
可以采用元字符,如
或$
,^
在正则表达式中使用,而包含
从字面上匹配子字符串
df1 %>%
select(contains("col\\d+"))
#data frame with 0 columns and 5 rows
df1 %>%
select(matches("col\\d+"))
# col1 col2
#1 24 46
#2 24 46
#3 24 46
#4 24 46
#5 24 46