使用普通的data.frame
,您可以执行以下操作:
head(mtcars[, 2]) %in% 6
[1] TRUE TRUE FALSE TRUE FALSE TRUE
我该如何使用
data.table
做相同的事情?我尝试了以下代码,但没有成功:as.data.table(mtcars)[, 2] %in% 4
[1] FALSE
当然,总有一种方法可以使用as.data.frame(myDT)
,但这似乎不够优雅。
使用普通的data.frame
,您可以执行以下操作:
head(mtcars[, 2]) %in% 6
[1] TRUE TRUE FALSE TRUE FALSE TRUE
data.table
做相同的事情?我尝试了以下代码,但没有成功:as.data.table(mtcars)[, 2] %in% 4
[1] FALSE
当然,总有一种方法可以使用as.data.frame(myDT)
,但这似乎不够优雅。
使用 data.table/tibble/data_frame
等,对于单列的 [,columnindex]
仍会返回一个 data.table/tibble/data_frame
。我们需要使用 $
或 [[
返回一个 vector
,%in%
用于 vector
。
as.data.table(mtcars)[[2]] %in% 4
[[
可以将数据表作为向量进行子集操作。[,2]
仍然是一个只有一列的数据表。与data.frame
和data.table/tibble
不同之一是,应该使用as.data.table(mtcars)[[2]] %in% 4
进行操作。 - akrundrop
选项一样的东西来处理data.frame。 - vladliwith = FALSE
。 - akrunmtcars[, "mpg", with = FALSE]
,但它没有像需要的那样对向量进行子集化。不管怎样,你帮了我一个忙。我应该关闭这个问题吗?如果你发布答案,我会接受它。 - vladli