【发布时间】:2015-09-04 16:20:54
【问题描述】:
我的目标是从 mydata 中选择几个包含特定模式的列。
mydata <- data.frame(q1 = rnorm(10), q10 = rnorm(10), q12 = rnorm(10), q20 = rnorm(10))
方法 1 - 使用 grep - 以简约的方式完成我所需要的:
myvars <- names(mydata)[grep("^q10|^q12", names(mydata))]
temp <- mydata[myvars]
tbl_df(temp)
我正在尝试纯粹在 dplyr 中进行。但是,我没有发现比以下更简洁的东西(比如在 grep 中):
temp <- cbind(select(mydata, starts_with("q10")), select(mydata, starts_with("q12")))
tbl_df(temp)
代码太多了。我怎样才能使它与“|”一起使用?我尝试了以下方法,但都不起作用:
select(mydata, starts_with("q10|q12"))
select(mydata, starts_with(c("q10","q12")))
temp <- select(mydata, starts_with("q10","q12"))
select(mydata, starts_with(c("q10"))|starts_with(c("q12")))
建议? 谢谢!
【问题讨论】:
-
吝啬意味着吝啬或节俭顺便说一句
-
@PierreLafortune parsimonious 也意味着简单、不复杂(至少对生物学家而言)
-
Stack Overflow,您的一站式代码和词汇商店。
-
如果以下答案对您有用,请考虑单击复选标记以接受它。您也可以为此获得积分。