【发布时间】:2019-05-10 13:55:50
【问题描述】:
假设我有一个 data.table 如下:
data=data.table(dates=c('04 SEPTEMBER 2018', '05 APR 2018', '7/10/2018'), DT = c('21/07/2010', '3 04 2018', '16 DEC 2018'), amounts = c(21,37,49))
我想要 data.table 中满足以下 grep 条件的行的名称
grepl("^[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}",x)
这样我就可以找到日期满足特定日期格式的行。如您所见,dates 和 DT 两列都包含日期格式。我不想引用代码中的特定列。我只想选择包含与上述 grep 模式匹配的字符的行。
我希望正确的代码返回c(2,3),因为这些行包含所需的字符串。我怎样才能得到我期望的答案?
【问题讨论】:
-
试试
which(grepl("^[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}", data$dates))或grep("^[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}", data$dates) -
我更愿意在不具体引用特定列名的情况下获取名称。我假设我不知道包含日期的列的名称。
-
这是一个完全不同的问题。在您的尝试中,您也可以参考列名
dates -
我会进行必要的编辑
-
你的问题还是很模糊。我们如何知道该列?所有其他列都是数字和
date字符吗?它总是在数据集中的特定位置吗?请尝试并明确。除非您想将其应用于每一列...??
标签: r data.table