讓我們假設我已經在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