我的数据框是
的结果new_df <- dat %>% group_by(ID) %>% sample_frac(0.25,replace = FALSE)
数据框如下所示:
Ad.ID ID
1234 deroy
2345 deroy
4567 deroy
34567 mrroy
13467 mrroy
00024 ronde
32243 ronde
试图过滤出特定于证书持有者ID的行,例如用于deroy或mrroy,但无法进行过滤。
exp <- new_df[new_df$ID %in%"deroy",]
使用grepl可以对一个ID进行操作,但是如果我想对两个或三个ID进行操作,则不起作用。
请不要将其标记为重复项,因为我已经尝试了here和其他几个地方的所有建议。
我可能会错过一些基本知识。任何帮助表示赞赏。
添加剂量:
structure(list(Ad.ID = c(75856740L, 75899591L, 75904815L, 75911256L,
75911261L, 75911267L, 75911277L, 75911277L, 75911291L, 75911302L,
75905790L, 75905815L, 75905818L, 75910661L, 75914385L, 75902382L,
75902383L, 75902384L, 75902386L, 75902391L), ID = c("deroy
",
"deroy ", "deroy ",
"deroy ", "deroy ",
"deroy ", "deroy ",
"deroy ", "deroy ",
"deroy ", "deroy ",
"deroy ", "deroy ",
"deroy ", "jishuroy ",
"jishuroy ", "jishuroy ",
"jishuroy ", "jishuroy ",
"jishuroy ")), .Names = c("Ad.ID", "ID"), row.names =
c(1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 16L,
17L, 18L, 19L, 20L, 21L), class = "data.frame")
答案 0 :(得分:0)
尝试:
params = { a: 1, b: 2, c: 3}
答案 1 :(得分:0)
查看您的数据,您的ID列长30。每个字后面都有很多空白。在继续之前,请先清理干净。
nchar(new_df$ID[1])
30
使用dplyr:
new_df %>%
mutate(ID = gsub(" ", "", ID)) %>%
filter(ID == "jishuroy")
Ad.ID ID
1 75914385 jishuroy
2 75902382 jishuroy
3 75902383 jishuroy
4 75902384 jishuroy
5 75902386 jishuroy
6 75902391 jishuroy
使用基数R:
new_df$ID <- gsub(" ", "", new_df$ID)
new_df[new_df$ID == "jishuroy", ]
Ad.ID ID
16 75914385 jishuroy
17 75902382 jishuroy
18 75902383 jishuroy
19 75902384 jishuroy
20 75902386 jishuroy
21 75902391 jishuroy
答案 2 :(得分:0)
一个简单的选择是使用trimws
删除“ ID”列中的前导/滞后空格,然后使用filter
library(dplyr)
new_df %>%
filter(trimws(ID) == "jishuroy")
对于多个ID,请按照OP的帖子中的说明使用%in%