【问题标题】:empty string as column name in tibble空字符串作为 tibble 中的列名
【发布时间】:2020-10-18 02:25:05
【问题描述】:
tibble::tibble(`` = 1:10)

Error: attempt to use zero-length variable name

tibble::tibble("" = 1:10)

Error: attempt to use zero-length variable name

我该如何解决这个问题?我需要有一个以 "" 为名称的列。

【问题讨论】:

    标签: r tidyverse tibble


    【解决方案1】:

    我的第一个想法是,这听起来像是一个报告表示的东西,因为在开发或处理数据时通常不需要无名列。在这方面,我建议您考虑在您可能使用的任何报告系统中更改名称(knitrkableExtra 等)。

    话虽如此,R 不会让你定义一个长度为零的列名,但它会让你稍后更新它:

    setNames(data.frame(" "=1),"")
    #    
    # 1 1
    setNames(tibble(" "=1),"")
    # # A tibble: 1 x 1
    #      ``
    #   <dbl>
    # 1     1
    

    【讨论】:

      【解决方案2】:

      这可以通过直接修改tibblenames 属性来实现,但这不是推荐的做法。做这样的事情:

      attr(df, "names") <- c("", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb")
      

      用这个数据集测试

      df <- tibble::as_tibble(mtcars)
      
      # A tibble: 32 x 11
           mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
         <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
       1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
       2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
       3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
       4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
       5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
       6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
       7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
       8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
       9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
      10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
      # ... with 22 more rows
      

      输出

      # A tibble: 32 x 11
            ``   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
         <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
       1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
       2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
       3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
       4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
       5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
       6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
       7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
       8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
       9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
      10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
      # ... with 22 more rows
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-04
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多