r - 过滤或子集化数据框不包含所有值

标签 r dataframe filter dplyr subset

我有一个数据框,我正在尝试根据列 ID 对它进行子集化,但是因为 ID值重复,并非所有值都包含在输出中。

示例:

values <- sample(1:100, 2520, replace=TRUE)
ID <- rep(c(1:21), times = 120) #21 unique IDs, each repeated 120 times
df <- data.frame(values, ID)


df_sub <- df %>% dplyr::filter(ID == c(1,2,5,7,9))

它是 ID 的子集正确,但每个 ID 只得到 24 行而不是我期待的 120。

length(df_sub$ID) = 120,应该是 600。

最佳答案

我们可以使用 %in% 代替 ==,因为 == 是元素运算符,只能使用单个元素或长度==

的左侧和右侧 sh 应该相同
library(dplyr)
df %>% 
    dplyr::filter(ID %in% c(1,2,5,7,9))

关于r - 过滤或子集化数据框不包含所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68566541/

相关文章:

r - 将换行符分隔的文本文件转换为 csv 文件

Python Pandas - 如何将具有两个不同列的两个数据框合并到两个列表列

javascript - jQuery - 使用数据属性过滤表

r - 如何将每列乘以 R 中的每个标量?

r - 获取Shiny中窗口的大小

r - group by 之后加入 data.table

python - Order Dataframe Index 基于第二个 Dataframe

python - 根据列名中的子字符串堆叠数据

date - hive :当日期为字符串时,在指定日期之间过滤数据

VBA 使用 xlFillSeries 自动填充可见单元格(过滤范围)