select 列的模式在 data.table 中
select columns with patterns in data.table
我有一个数据 table,其中包含许多列,例如 real_0_h
、real_1_h
、real_2_h
等等。不幸的是,我还有其他列,例如 real_dose.
我的代码看起来像那样(data.table 包):
melt(dt, id.vars = c("id", "dose"), measure.vars = patterns("^real_"))
这样,显然 real_dose
也会被选中,但我只想参考 real_0_h:real_24_h
(dplyr 语法)。它是怎么做到的?
patterns
接受标准正则表达式。
您可以使用以下模式 select 只有 real_
之后的数字
melt(dt, id.vars = c("id", "dose"), measure.vars = patterns("^real_[0-9]"))
在没有可重现示例的情况下,可以使用 grepl
:
测试此模式
grepl('^real_[0-9]',c('real_dose','real_0_h','real_24_h'))
[1] FALSE TRUE TRUE
我有一个数据 table,其中包含许多列,例如 real_0_h
、real_1_h
、real_2_h
等等。不幸的是,我还有其他列,例如 real_dose.
我的代码看起来像那样(data.table 包):
melt(dt, id.vars = c("id", "dose"), measure.vars = patterns("^real_"))
这样,显然 real_dose
也会被选中,但我只想参考 real_0_h:real_24_h
(dplyr 语法)。它是怎么做到的?
patterns
接受标准正则表达式。
您可以使用以下模式 select 只有 real_
melt(dt, id.vars = c("id", "dose"), measure.vars = patterns("^real_[0-9]"))
在没有可重现示例的情况下,可以使用 grepl
:
grepl('^real_[0-9]',c('real_dose','real_0_h','real_24_h'))
[1] FALSE TRUE TRUE