【发布时间】:2019-11-26 15:00:28
【问题描述】:
我有一个如下所示的数据集:
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")
你知道我做错了什么吗?
提前致谢。
【问题讨论】:
-
如果您至少可以让我知道您为什么对这个问题投反对票,那就太好了,因为我不知道......
-
您是说您不想要第 3 行,例如因为第 1 行和第 2 行的点击次数 = F 和点击次数 = na?你不清楚这一点。您在这里的选择是将您的过滤器更改为
all(clicks == F),然后使用 group_by id -
@zineda,我编辑了我的答案以获得您的预期输出
-
逻辑值是它们自己的数据类型,而不仅仅是字符串。
T(或者更好的是,TRUE)!="T"。NA也是如此——它有实际意义,不仅仅是字母"NA"。我猜不赞成票是因为没有进行基础研究,包括只查看数据框中的值类型 -
目前还不清楚您要做什么。
filter是按行发生的,所以除了我已经提到的错字之外,如果您尝试按组 ID 做某事,您还没有编写处理组的代码,也没有描述它。 “效果不佳”并不能清楚地解释您要寻求帮助的内容。