我有一个数据集,如下所示:
data <- tribble(
~cat_id, ~clicks, ~price,
"1", NA, 1.2,
"1", T, 1.4,
"1", F, 2.2,
"2", F, 2.2,
"2", T, 1.5,
"2", NA, 1.6,
"3", T, 1.7,
"3", F, 1.9,
"4", F, 1.4,
)
但是现在,如果“ click”仅具有“ F”值,我想获取行。我想要的数据是这样的:
desired_data <- tribble(
~cat_id, ~clicks, ~price,
"4", F, 1.4,
)
要获得它,我编写了这样的代码,但效果不佳:
data %>%
filter(clicks == "F" & clicks != "T" & clicks != "NA")
你知道我在做什么错吗?
先谢谢了。
答案 0 :(得分:2)
使用showSlides(slideIndex);
showSlides1(slideIndex)
,您可以使用计数来计算每个dplyr
的级别数,然后过滤cat_id
和clicks -- F
的行。
n == 1
答案 1 :(得分:2)
@ dc37在编辑方面领先于我
您的回答被否决了,因为人们不理解您的措辞。我猜您的意思是某些行无效,因为它们具有相同ID的T或NA。
data %>% group_by(., cat_id)%>% filter(., all(clicks == F))
答案 2 :(得分:2)
这是您要找的吗?
data %>%
group_by(cat_id) %>%
filter(!any(clicks)) %>%
ungroup()
编辑:如果点击是一个因素
data <- tribble(
~cat_id, ~clicks, ~price,
"1", NA, 1.2,
"1", T, 1.4,
"1", F, 2.2,
"2", F, 2.2,
"2", T, 1.5,
"2", NA, 1.6,
"3", T, 1.7,
"3", F, 1.9,
"4", F, 1.4,
)
data$clicks <- factor(data$clicks, labels = c("F", "T"))
data %>%
group_by(cat_id) %>%
filter(all(clicks == "F")) %>%
ungroup()