【问题标题】:dplyr unsupported type error when filtering过滤时 dplyr 不支持的类型错误
【发布时间】:2014-12-05 08:02:11
【问题描述】:

我运行此代码并尝试使用 dplyr 包进行过滤,但出现错误。错误:列“USUBJID”的类型不受支持。我不知道我做错了什么。

 library('SASxport')    
 library('dplyr')    

 dm<-read.xport('C:/Temp/SDD/dm.xpt')   

 filter(dm, SEX=="M")

错误:列“USUBJID”的类型不受支持

我遇到了同样的错误:

dplyr::filter(dm, SEX="M")     
dm %>% filter(dm, SEX=="M")    

这是文件的一些元数据:

meta <-select(dm, USUBJID, SEX)
str(meta)

'data.frame':816 obs。 2 个变量:

$ USUBJID:Classes 'labelled', 'character'  atomic [1:816]   .. ..- attr(*, "label")= chr "Unique Subject Identifier"

 $ SEX    : Factor w/ 2 levels "F","M": - attr(*, "label")= chr "Sex" - attr(*, "label")= chr " "- attr(*, "SAStype")= chr " "

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    使用来自?read.xport的示例数据

    library(SASxport)
    w1 <- w$TEST[1:2]
    w1 %>%
        filter(RACE=='blue')
    #Error: column 'AGE' has unsupported type
    str(w1)
    #'data.frame':  2 obs. of  2 variables:
    #$ RACE: Factor w/ 3 levels "green","blue",..: 2 NA
    # .- attr(*, "SASformat")= chr "RACE"
    # $ AGE :Classes 'labelled', 'integer'  atomic [1:2] 30 31
    #  .. ..- attr(*, "label")= chr "Age at Beginning of Study"
    
    w1[] <- lapply(w1, function(x) {
                       attr(x, 'SASformat') <- NULL
                       attr(x, 'label') <- NULL
                       x})
    
    class(w1$AGE) <- NULL
    w1 %>% 
       filter(RACE=='blue')
    # RACE AGE
    #1 blue  30
    

    根据上面的例子,我猜是meta数据

    meta[] <- lapply(meta, function(x) {
                   attr(x, 'SAStype') <- NULL
                   attr(x, 'label') <- NULL
                   x})
    
    class(USUBJID) <- NULL
    filter(meta, SEX=='M') 
    

    数据

     testFile <- system.file('extdata', 'test2.xpt', package="SASxport")
     w <- read.xport(testFile)
    

    【讨论】:

    • 谢谢,这解决了问题。你能解释为什么有必要删除属性和类吗?我是 R 新手,我认为它是一个有效的数据框,可以与 dplyr 一起使用
    • @user1476427 我认为这是因为dplyr 只支持一些classes。可能在未来,它会扩展到更多的类、属性等。这可能是由于速度问题。
    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 2018-10-07
    • 2020-05-12
    • 2014-11-11
    • 2018-10-13
    • 2018-07-25
    • 2021-11-11
    • 2016-09-09
    相关资源
    最近更新 更多