PDF 79 / 520 - starts\with("abc") matches names that begin with "abc".
English · PDF 79
Original PDF page 79
中文 · PDF 79
  • starts_with("abc") 匹配以 "abc" 开头的变量名。
  • ends_with("xyz") 匹配以 "xyz" 结尾的变量名。
  • contains("ijk") 匹配包含 "ijk" 的变量名。
  • matches("(.)\1") 选择匹配某个正则表达式的变量。这个例子匹配任何包含重复字符的变量。你将在第 11 章中学到更多关于正则表达式的知识。
  • num_range("x", 1:3) 匹配 x1、x2 和 x3。

更多细节请参见 ?select。

select() 可以用来重命名变量,但很少有用,因为它会丢弃所有未明确提到的变量。相反,应使用 rename(),它是 select() 的一个变体,会保留所有未明确提到的变量:

rename(flights, tail_num = tailnum) #> # A tibble: 336,776 × 19 #> year month day dep_time sched_dep_time dep_delay #> #> 1 2013 1 1 517 515 2 #> 2 2013 1 1 533 529 4 #> 3 2013 1 1 542 540 2 #> 4 2013 1 1 544 545 -1 #> 5 2013 1 1 554 600 -6 #> 6 2013 1 1 554 558 -4 #> # ... 还有 3.368e+05 行,以及 13 个更多变量: #> # arr_time , sched_arr_time , arr_delay , #> # carrier , flight , tail_num , #> # origin , dest , air_time , #> # distance , hour , minute , #> # time_hour

另一种选择是将 select() 与 everything() 辅助函数结合使用。如果你想把少数几个变量移动到数据框的开头,这会很有用:

select(flights, time_hour, air_time, everything()) #> # 一个 tibble:336,776 × 19 #> time_hour air_time year month day dep_time #> #> 1 2013-01-01 05:00:00 227 2013 1 1 517 #> 2 2013-01-01 05:00:00 227 2013 1 1 533 #> 3 2013-01-01 05:00:00 160 2013 1 1 542 #> 4 2013-01-01 05:00:00 183 2013 1 1 544 #> 5 2013-01-01 06:00:00 116 2013 1 1 554