如何gre中R中的特定整数?

时间:2016-03-17 10:30:52

标签: r grep integer

如何gre中R中的特定整数?我认为参数fixed=TRUE允许这样做,但显然事实并非如此:

NameDataTable = "LONG_TE_B.xpt"
NDie = 1
DataTable = read.xport(NameDataTable)
pos_DataTable_Die = grep(as.character(NDie), DataTable[,"DIEINDEX"], fixed=TRUE)
DataTableDie = DataTable[pos_DataTable_Die,]

这也是DIEINDEX等于11的行。这对我来说是一个问题:

> DataTableDie[947, "DIEINDEX"]

[1] 1

> DataTableDie[949, "DIEINDEX"]

[1] 11

我该如何解决呢?提前谢谢。

威廉

3 个答案:

答案 0 :(得分:2)

我们可以paste ^$更加具体。或者使用单词边界(\\b

grep(paste0("^",NDie, "$"), DataTable[,"DIEINDEX"])

答案 1 :(得分:1)

为了便于阅读和整洁的工作流程,可能值得反思stringr包提供的解决方案:

vals <- c("1", "11a", "DIEINDEX")
require(stringr)
str_detect(string = "1", pattern = vals)

结果

从名称可以推断, the str_detect 函数检测到字符串的存在。在这种情况下,函数将产生:

> str_detect(string = "1", pattern = vals)
[1]  TRUE FALSE FALSE

as.numeirc()

不会造成任何困难

str_detect(string = 1, pattern = vals)
[1]  TRUE FALSE FALSE

答案 2 :(得分:0)

好的,有效!我刚刚做了:

DataTable = read.xport(NameDataTable)
for(i in 1:nrow(DataTable)){
  DataTable[i,"DIEINDEX"] = paste0("^",as.character(DataTable[i,"DIEINDEX"]),"$")
}
pos_DataTable_Die = grep(paste0("^",as.character(NDie),"$"), DataTable[,"DIEINDEX"], fixed=TRUE)
DataTableDie = DataTable[pos_DataTable_Die,]