gpt4 book ai didi

r %in% 数据表因素的运算符(operator)行为?

转载 作者:行者123 更新时间:2023-12-04 09:30:48 24 4
gpt4 key购买 nike

我似乎无法让 %in% 运算符对数据表因子列起作用。我知道我可能遗漏了一些数据表的 secret 语法,但我找不到它......我已经搜索过了。

这里有一个小例子可以说明我的痛苦。当然,简单的答案是使用数据框,但我有一个受益于数据表的某些功能的大型数据集。

> a <- data.table(c1=factor(c(1,2,3)))
> a
c1
1: 1
2: 2
3: 3

> '2' %in% a[,1,with=F]
[1] FALSE

> 2 %in% a[,1,with=F]
[1] FALSE

它的工作方式和我对数据框的预期一样......

> b <- data.frame(c1=factor(c(1,2,3)))
> '2' %in% b[,1]
[1] TRUE

感谢任何帮助....

最佳答案

a[,1,with=F] 是一个 data.table 而不是像 b[,1] 这样的向量。这是记录在案的。

data.table 是一个列表,help("%in%") 说“列表被转换为字符向量”。所以,我猜会发生这种情况(但它隐藏在 match 的 C 源代码中):

as.character(a[,1,with=F])
#[1] "1:3"

您可以使用 [[:

高效地选择 data.table 列
'2' %in% a[[1]]
#[1] TRUE

关于r %in% 数据表因素的运算符(operator)行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com