在grep表達式中,當grep的值爲integer(0)
時,打印「ok」,我該怎麼辦?如何處理R中返回整數(0)的grep失敗?
> data="haha"
> grep("w",data)
integer(0)
> if (grep("w",data)==0) print ("ok")
Error in if (grep("w", data) == 0) print("ok") :
argument is of length zero
在grep表達式中,當grep的值爲integer(0)
時,打印「ok」,我該怎麼辦?如何處理R中返回整數(0)的grep失敗?
> data="haha"
> grep("w",data)
integer(0)
> if (grep("w",data)==0) print ("ok")
Error in if (grep("w", data) == 0) print("ok") :
argument is of length zero
您可以使用length
或identical
R> if (length(grep("w", data)) == 0) print ("ok")
[1] "ok"
R> if (identical(grep("w", data), integer(0))) print ("ok")
[1] "ok"
你也可以使用的grepl
代替grep
R> if (!any(grepl("w", data))) print('ok')
[1] "ok"
相反的grep
,youcould使用grepl
它返回一個邏輯:
> if (grepl("w",data)== FALSE) print ("ok") else print("donkeykong")
[1] "ok"
> if (grepl("h",data)== FALSE) print ("ok") else print("donkeykong")
[1] "donkeykong"
如果你知道數據是單一值,你可以使用'if(grepl(「w」,data))'。在OPs的情況下以及在我的代碼中,現在也會發生這種情況...... – TMS