数据框 %in% 数据框。 (R编程)
dataframe %in% dataframe. (R programming)
我正在尝试使用逻辑向量以特定方式从数据集中提取某些行:
Logical.vector <- df %in% df[df$a=='ABC123',]
Logical.vector
-----------------------------------------
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
df[df$a=='ABC123',]
从具有下一个维度的数据框 (df) 中提取的多行(“子数据框”):
ndim(df)
---------------------------------------
[1] 4226 11
为什么我的代码没有获得成功的结果?我可以通过哪种方式获得数据帧行的逻辑向量?提前致谢!
原因是 %in%
适用于 vector
而不是 list
或 data.frame
。为此,我们需要 ==
(但这仅适用于单个元素)。如果我们要使用 %in%
,那么 paste
每行到一个字符串
i1 <- do.call(paste, c(df, sep=", ")) %in%
do.call(paste, c(df[df$a=='ABC123',], sep=", "))
我正在尝试使用逻辑向量以特定方式从数据集中提取某些行:
Logical.vector <- df %in% df[df$a=='ABC123',]
Logical.vector
-----------------------------------------
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
df[df$a=='ABC123',]
从具有下一个维度的数据框 (df) 中提取的多行(“子数据框”):
ndim(df)
---------------------------------------
[1] 4226 11
为什么我的代码没有获得成功的结果?我可以通过哪种方式获得数据帧行的逻辑向量?提前致谢!
原因是 %in%
适用于 vector
而不是 list
或 data.frame
。为此,我们需要 ==
(但这仅适用于单个元素)。如果我们要使用 %in%
,那么 paste
每行到一个字符串
i1 <- do.call(paste, c(df, sep=", ")) %in%
do.call(paste, c(df[df$a=='ABC123',], sep=", "))