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