[英]error in a pmap Error in UseMethod("filter_") : no applicable method for 'filter_' applied to an object of class "character"
[英]How to fix dplyr filter() Error in UseMethod(“filter_”)
當我嘗試從創建的數據矩陣中選擇數據時,出現錯誤,我希望有人可以幫助我並修復它。
UseMethod(“ filter_”)中的錯誤:沒有將適用於'filter_'的適用方法應用於類“ c('matrix','double','numeric')”的對象
我試圖通過執行dplyr ::來調用該函數,或者使用一些管道操作mydata%>%filter(2010)甚至安裝和加載了軟件包“ conflicted”,並給dplyr一個優先級,但沒有任何效果。 我是新來的。
Matrix_5c_AVG_Year <- cbind(AVG_SWE_YEAR,AVG_NO[,2],AVG_FI[,2],AVG_EE[,2],AVG_LV[,2],AVG_LT[,2])
colnames(Matrix_5c_AVG_Year) <- c("Year","AVG_SWE1", "AVG_NO1", "AVG_FI1", "AVG_EE1", "AVG_LV1", "AVG_LT1")
mydata<-Matrix_5c_AVG_Year
mydata %>% filter(2010)
我想僅輸出2010年數據行,並且只能選擇一個標頭。
正如@brettljausn所說,您需要將矩陣轉換為data.frame。 如果不添加要在其上比較條件值的列名,則在filter
調用中也會出錯。
這應該可以說明您的問題和解決方案(繼續在tidyverse中,因為您正在使用filter
):
library(tidyverse)
(a <- matrix(c(5,1), 2, 2))
#> [,1] [,2]
#> [1,] 5 5
#> [2,] 1 1
colnames(a) <- c("Year", "AVG_SWE1")
a %>%
filter(Year == 5)
#> Error in UseMethod("filter_"): no applicable method for 'filter_' applied to an object of class "c('matrix', 'double', 'numeric')"
(a2 <- as_tibble(a))
#> # A tibble: 2 x 2
#> Year AVG_SWE1
#> <dbl> <dbl>
#> 1 5 5
#> 2 1 1
a2 %>%
filter(Year == 5)
#> # A tibble: 1 x 2
#> Year AVG_SWE1
#> <dbl> <dbl>
#> 1 5 5
由reprex軟件包 (v0.3.0)創建於2019-07-31
由於您是新手,因此建議您閱讀https://r4ds.had.co.nz/的第1-16章。
多虧了larsoevlisen,我知道我的數據是一個矩陣,無法以這種方式進行操作,因此我不得不將它們轉換為data.frame()
來過濾出我需要的數據。
最終解決方案:
Matrix_5c_AVG_Year < cbind(AVG_SWE_YEAR,AVG_NO_YEAR[,2],AVG_FI_YEAR[,2],AVG_EE_YEAR[,2],AVG_LV_YEAR[,2],AVG_LT_YEAR[,2])
Matrix_5c_AVG_Year <-data.frame(Matrix_5c_AVG_Year)
colnames(Matrix_5c_AVG_Year) <- c("Year","AVG_SWE1", "AVG_NO1",
"AVG_FI1", "AVG_EE1", "AVG_LV1", "AVG_LT1")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.