【发布时间】:2018-07-08 13:53:49
【问题描述】:
我的数据框是
的结果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 执行此操作,但如果我想为两个或三个执行此操作,它就行不通了。
请不要标记为重复,因为我已经尝试了来自 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")
【问题讨论】:
-
不能做是什么意思?你有错误吗?因为如果我测试您的
new_df[new_df$ID %in%"deroy",]代码,它会返回带有“deroy”的行 -
@phiver 在运行我的控制台给出的代码后 #A tibble: 0 x 2 # Groups: ID [0] # ... 有 2 个变量:Ad.ID
, ID -
由于您使用的是 dplyr,如果您使用
new_df %>% filter(ID == "deroy")会发生什么。 -
@phiver 还是一样的结果
-
示例数据上的所有选项都可以正常工作。我认为您必须检查数据中的拼写错误/尾随空格等。或者,如果您将
dput(head(dat, 20))的结果添加到您的问题中。因为现在我看不出问题出在哪里。