【问题标题】:In R, how to print column names into vector form?在 R 中,如何将列名打印成向量形式?
【发布时间】:2020-08-11 15:50:12
【问题描述】:

我有一个包含数百列的数据框。我需要采用多组列来应用转换。必须复制粘贴,然后插入逗号并删除多余的空间非常耗时。这里以一个只有 13 列的数据框为例。

df <- data.frame(x1=rnorm(20),x2=rnorm(20),x3=rnorm(20)
  ,x4=rnorm(20),x5=rnorm(20),x6=rnorm(20),x7=rnorm(20)
  ,x8=rnorm(20),x9=rnorm(20),x10=rnorm(20),x11=rnorm(20)
  ,x12=rnorm(20),x13=c(2,1,1,2,2,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1))

我可以打印名称,但它们看起来像:

colnames(df)
[1] "x1"  "x2"  "x3"  "x4"  "x5"  "x6"  "x7"  "x8"  "x9"  "x10" "x11" "x12" "x13"

我想要

c("x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13")

我尝试过的:

paste0("c(",paste(names(df),collapse=","),")")
[1] "c(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13)"

paste0("c(",paste(names(df),collapse="\",\""),")")
[1] "c(x1\",\"x2\",\"x3\",\"x4\",\"x5\",\"x6\",\"x7\",\"x8\",\"x9\",\"x10\",\"x11\",\"x12\",\"x13)"

paste0("c(",paste(names(df),collapse="','"),")")
[1] "c(x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x12','x13)"

paste0("c(",paste(str(names(df)),collapse=","),")")
chr [1:13] "x1" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "x10" "x11" "x12" "x13"
[1] "c()"

【问题讨论】:

  • 试试dput(colnames(df))

标签: r multiple-columns copy-paste


【解决方案1】:

你可以试试这个:

dput(colnames(df))

输出:

c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", 
"x11", "x12", "x13")

【讨论】:

    【解决方案2】:

    使用dput() 函数

        df <- data.frame(x1=rnorm(20),x2=rnorm(20),x3=rnorm(20)
                         ,x4=rnorm(20),x5=rnorm(20),x6=rnorm(20),x7=rnorm(20)
                         ,x8=rnorm(20),x9=rnorm(20),x10=rnorm(20),x11=rnorm(20)
                         ,x12=rnorm(20),x13=c(2,1,1,2,2,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1))
    
        x <- colnames(df)
    
        dput(x)
        #> c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", 
        #> "x11", "x12", "x13")
    

    reprex package (v0.3.0) 于 2020 年 8 月 11 日创建

    【讨论】:

      【解决方案3】:

      我建议安装addindatapasta,参见here

      library(clipr)
      x <- names(df)
      #save to clipboard
      write_clip(x)
      
      #datapasta
      #then paste vertically: vector_paste_vertical 
      c("x1",
        "x2",
        "x3",
        "x4",
        "x5",
        "x6",
        "x7",
        "x8",
        "x9",
        "x10",
        "x11",
        "x12",
        "x13")
      
      #or paste normally: vector_paste 
      c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13")
      

      使用addin 的优点是您可以为vector_pastevector_paste_vertical 创建一个快捷方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 2018-03-07
        • 2020-04-21
        • 2018-01-06
        • 1970-01-01
        • 2021-06-13
        • 2015-10-01
        相关资源
        最近更新 更多