如何修正dplyr代码以选择以t加数字结尾的mtcars数据集列
解决方法
问题出在ends_with()的用法上:这个函数只支持字面匹配列名的结尾,不支持正则表达式语法。你写的t[0-9]$会被当作普通字符串去匹配列名结尾,自然找不到符合条件的列,所以返回空对象。
正确的做法是使用支持正则表达式的matches()函数,代码如下:
mtcars %>% dplyr::select(matches("t\\d$"))
正则说明:
t:匹配字母t\\d:匹配任意单个数字(R字符串中反斜杠需要转义,所以写两个)$:限定匹配位置为列名的结尾
如果需要匹配t后面跟多个数字(比如t12这类结尾),可以把正则改成"t\\d+$",其中+表示前面的数字可以出现1次或多次。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

