我有一个数据框,我正在尝试根据列 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%
代替 ==
,因为 ==
是元素运算符,只能使用单个元素或长度==
library(dplyr)
df %>%
dplyr::filter(ID %in% c(1,2,5,7,9))
关于r - 过滤或子集化数据框不包含所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68566541/