時爲什麼,下列返回我「TRUE」在%沒有匹配%使用data.table
ifelse(13 %in% 1:13, TRUE, FALSE)
[1] TRUE
及以下(對我來說或多或少相同)返回「FALSE」
TestData <- as.data.table(1:13)
ifelse(13 %in% TestData[1:13, "V1"], TRUE, FALSE)
[1] FALSE
時爲什麼,下列返回我「TRUE」在%沒有匹配%使用data.table
ifelse(13 %in% 1:13, TRUE, FALSE)
[1] TRUE
及以下(對我來說或多或少相同)返回「FALSE」
TestData <- as.data.table(1:13)
ifelse(13 %in% TestData[1:13, "V1"], TRUE, FALSE)
[1] FALSE
我們需要提取列作爲vector
13 %in% TestData[1:13][["V1"]]
#[1] TRUE
在OP的代碼中,TestData[1:13, "V1"]
仍然是單列的data.table
。在ifelse
作品上vector
作爲data.table/data.frame
是list
與某些屬性
13 %in% TestData[1:13, "V1"]
#[1] FALSE
13 %in% list(1:13)
#[1] FALSE
另外,作爲所述@Frank,子集劃分的不需要在這種情況下的作爲ifelse
的%in%
的輸出爲邏輯矢量
列第一的向量會更有效
13 %in% TestData[["V1"]][1:13]
隨着data.table
通常要放在表達210的位置。
TestData[1:13, 13 %in% V1]
清除。感謝您的解釋! – Sven
由於'TestData [1:13]'產生了一個包含所有數據的子集,所以'TestData [[V1]] [1:13]'或者甚至TestData [1:13,V1]列。 – Frank