[英]Define new parameter in R conditional on multiple columns starting with the same name (combine mutate, ifelse and starts_with)
[英]|R] Select multiple columns starting with the same pattern
我有數據框 df。 我想選擇名稱以 q6、q7、q8、q9、q10 和 q11 開頭的列。
如果我寫這個表達式,它會起作用:
sub_df = df %>%
select( matches("^q(6|7|8|9|10|11)")
我怎么能使用 : (seq) 函數? 就像是select( matches("^q(6:11)")
或select( matches("^q(6-11)")
但它不起作用。 我對這個正則表達式很陌生。
我怎么辦?
謝謝
df %>% select(starts_with(paste("q",6:11, sep = "")))
我們可以使用正則表達式從字符串的開頭 ( ^
) 匹配 'q',然后是[]
內的值6-9
范圍或 ( |
) 1 后跟[0-1]
的范圍在末尾 ( $
) 的字符串
library(dplyr)
df %>%
select(matches('^q([6-9]|1[0-1])$'))
-輸出
q6 q7 q8 q9 q10 q11
1 -0.07430856 -0.64859151 -0.11629639 0.6128514 -4.4695644 0.06735770
2 -0.60515695 -0.09411013 -0.94382724 1.5171225 0.3690450 0.01710596
3 -1.70964518 -0.08554095 -0.03373792 0.6573804 0.1692267 -0.34365937
4 -0.26869311 0.11953107 -0.58542756 -1.0741813 -1.8221903 -0.66789220
set.seed(24)
df <- as.data.frame(matrix(rnorm(12 *4), ncol = 12,
dimnames = list(NULL, paste0("q", 1:12))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.