【发布时间】:2021-11-05 04:35:33
【问题描述】:
我有一个 df:
df1 <- data.frame(
sample_id = c('SB024', '3666-01', '3666-01', '3666-02'),
FAO = c(100,50,3,5)
> df1
sample_id FAO
1 SB024 100
2 3666-01 50
3 3666-01 3
4 3666-02 5
我想做一个像这样的过滤器: 如果样本 id 包含 3666 过滤 FAO >4,否则过滤 FAO >20
所以输出将是:
sample_id FAO
1 SB024 100
2 3666-01 50
3 3666-02 5
在阅读了How do I filter a data frame with dplyr's filter() and R-base's ifelse()? 的上一个问题后,我尝试了以下操作:
df1%>%
+ filter(df1, str_detect(sample_id, "3666" & FAO >=4))
错误:filter() 输入 ..1 有问题。
i 输入..1 是case。
x 输入..1$sample_id 必须是逻辑向量,而不是字符。
【问题讨论】:
标签: r