Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何grep R中的特定整数?_R_Integer - Fatal编程技术网

如何grep R中的特定整数?

如何grep R中的特定整数?,r,integer,R,Integer,如何grep 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,]

如何grep 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] 十一,

请问我怎么结算?先谢谢你


William

我们可以更具体地粘贴
$
。或者使用单词边界(
\\b


好的,行了!我只是:

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,]

为了可读性和整洁的工作流程,可能值得考虑软件包提供的解决方案:

as.numeirc()
不会造成任何困难

str_detect(string = 1, pattern = vals)
[1]  TRUE FALSE FALSE
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,]
vals <- c("1", "11a", "DIEINDEX")
require(stringr)
str_detect(string = "1", pattern = vals)
> str_detect(string = "1", pattern = vals)
[1]  TRUE FALSE FALSE
str_detect(string = 1, pattern = vals)
[1]  TRUE FALSE FALSE