如何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
我该如何解决呢?提前谢谢。
威廉
答案 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,]