我有一个数据框,我正在尝试根据列 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。
答案 0 :(得分:3)
我们可以使用 %in%
代替 ==
,因为 ==
是逐元素运算符,并且只能使用单个元素,或者 {{1} 的 lhs 和 rhs 的长度应该相同}
==