让我们假设我已经在R-Studio中加载一个名为exprCore1 data.fram,东风看起来是这样的:滤镜功能dplyr似乎不工作
measure qid value
1 p5 1 0.2
2 p100 1 0.8
3 map 1 0.22
4 p5 2 0.4
5 p100 2 0.5
6 map 2 0.32
基本上都希望是每一列,其中测量方法是“地图”。
我尝试了不同的方法,他们都只是返回一个没有内容的0x4 tibble。
我试过到目前为止:
library("dplyr", lib.loc="~/R/win-library/3.4")
exprCore1MapOverall <- dplyr::filter(exprCore1, measure == "map")
这只是返回:
# A tibble: 0 x 4
# ... with 4 variables: measure <chr>, queryID <chr>, value <dbl>, coreTag <chr>
缺少什么我在这里?谁能帮我?
谢谢
编辑:
也试过
exprCore1MapOverall <-filter(exprCore1, measure %in%c("map"))
EDIT2:
我不能张贴整个data.frame,办法多的数据。我缩水它使用
exprCore1Fixed <- exprCore1[-c(30: 142082),]
这里是exprCore1Fixed
structure(list(measure = c("num_ret ", "num_rel ",
"num_rel_ret ", "map ", "R-prec ", "bpref ",
"recip_rank ", "ircl_prn.0.00 ", "ircl_prn.0.10 ", "ircl_prn.0.20 ",
"ircl_prn.0.30 ", "ircl_prn.0.40 ", "ircl_prn.0.50 ", "ircl_prn.0.60 ",
"ircl_prn.0.70 ", "ircl_prn.0.80 ", "ircl_prn.0.90 ", "ircl_prn.1.00 ",
"P5 ", "P10 ", "P15 ", "P20 ",
"P30 ", "P100 ", "P200 ", "P500 ",
"P1000 ", "num_ret ", "num_rel ", "ircl_prn.0.70 ",
"ircl_prn.0.80 ", "ircl_prn.0.90 ", "ircl_prn.1.00 ", "P5 ",
"P10 ", "P15 ", "P20 ", "P30 ",
"P100 ", "P200 ", "P500 ", "P1000 "
), queryID = c("1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1", "2", "2", "all", "all", "all", "all", "all",
"all", "all", "all", "all", "all", "all", "all", "all"), value = c(752,
5, 4, 0.1089, 0.2, 0.8, 0.25, 0.25, 0.25, 0.25, 0.1429, 0.1429,
0.1429, 0.1429, 0.0342, 0.0342, 0, 0, 0.2, 0.1, 0.0667, 0.1,
0.1, 0.03, 0.02, 0.008, 0.004, 2, 3, 0.0696, 0.0565, 0.0374,
0.0345, 0.25, 0.1962, 0.1718, 0.151, 0.1192, 0.0525, 0.0335,
0.0164, 0.0097), coreTag = c("Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1", "Core_1",
"Core_1", "Core_1", "Core_1")), .Names = c("measure", "queryID",
"value", "coreTag"), row.names = c(NA, -42L), class = c("tbl_df",
"tbl", "data.frame"))
我无法复制此问题。你的代码适合我。通过可疑的方式,您的“度量”列正在打印,您确定在值中没有尾部或前导空白吗?像'“地图”'?尝试'dplyr :: filter(exprCore1,修剪(测量)==“地图”)'看看你是否得到不同的结果。 – thelatemail
这段代码对我来说看起来也很好。在控制台中运行'dput(exprCore1)'并将结果输出编辑到您的文章中,以便我们可以使用与您使用的完全相同的数据。 – dshkol
与您的问题无关,但您确实需要从dplyr中导入'filter'命令,因为您已经调用'library(dplyr)'。在这种情况下,不需要'dplyr :: filter(...)'。 – dshkol