【问题标题】:select(vore) sometimes calls 'vore' column but sometimes also 'vore_imp' columnselect(vore) 有时称为“vore”列,但有时也称为“vore_imp”列
【发布时间】:2021-06-30 09:18:44
【问题描述】:

在使用 R 时,我想我可以使用列名中的常用词来调用多个列。但是,我很困惑,有时只调用具有完全相同列名的列,有时也会调用在其列名中包含该列名的多个列。而且我看不出代码之间有任何区别:

.

图表 A

msleep %>% select(genus, vore, conservation) %>% na.omit

这段代码给了我三列:'genus'、'vore'、'conservation'

图表 B

library(VIM) msleep %>% select(genus, vore, conservation) %>% na.omit %>% kNN(k=5)

然而,这段代码给了我 6 列:'genus'、'vore'、conservation' 和 'genus_imp'、'vore_imp'、'conservation_imp'

.

我不太明白这两行代码之间的显着区别,所以我很困惑。如何判断 dplyr::select() 函数是否会给我列名称完全相同的列?

【问题讨论】:

    标签: r select dplyr


    【解决方案1】:

    select 函数的行为在两个代码中都没有改变。 select 函数返回具有完全相同列名的列,但是因为您在第二种情况下应用了 kNN 函数,该函数返回一个带有附加列的估算数据集,您将获得 genus_impvore_impconservation_imp 列。

    library(VIM)
    
    step1 <- msleep %>% 
      select(genus, vore, conservation) %>% 
      na.omit 
    step1
    
    # A tibble: 52 x 3
    #   genus         vore  conservation
    #   <chr>         <chr> <chr>       
    # 1 Acinonyx      carni lc          
    # 2 Aplodontia    herbi nt          
    # 3 Blarina       omni  lc          
    # 4 Bos           herbi domesticated
    # 5 Callorhinus   carni vu          
    # 6 Canis         carni domesticated
    # 7 Capreolus     herbi lc          
    # 8 Capri         herbi lc          
    # 9 Cavis         herbi domesticated
    #10 Cercopithecus omni  lc          
    # … with 42 more rows
    

    这第一步返回完全相同的 3 列,但在添加 kNN 函数后,您将获得更多列。

    step1 %>% kNN(k=5)
    
    #           genus    vore conservation genus_imp vore_imp conservation_imp
    #1       Acinonyx   carni           lc     FALSE    FALSE            FALSE
    #2     Aplodontia   herbi           nt     FALSE    FALSE            FALSE
    #3        Blarina    omni           lc     FALSE    FALSE            FALSE
    #4            Bos   herbi domesticated     FALSE    FALSE            FALSE
    #5    Callorhinus   carni           vu     FALSE    FALSE            FALSE
    #....
    #....
    

    如果需要,您可以再次添加 select step1 %&gt;% kNN(k=5) %&gt;% select(genus, vore, conservation) 以选择这 3 列。

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2016-06-21
      • 2020-07-06
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 2021-10-22
      • 2019-10-21
      相关资源
      最近更新 更多