【问题标题】:Print labels and variable names with head打印带头的标签和变量名
【发布时间】:2019-01-08 07:14:46
【问题描述】:

我正在尝试在 R 中使用类似 head 的命令,但也在控制台的输出中包含变量标签。

到目前为止,我已经使用 data.frames 和 tibbles 测试了 head()dplyr::slice(),但没有任何选项可以显示标签和列名。

有谁知道这是否可行?

我试图得到这样的东西:

# A tibble: 3 x 21
SiteSeq   SiteName  SiteCode  SubjectSeq   SubjectId    EventSeq 
<Site No> <Name>    <Code>    <Patient No> <Patient ID> <Event No> 
2         Peter M~   PMC       1           PMC-001      1        
2         Peter M~   PMC       1           PMC-001      1        
2         Peter M~   PMC       1           PMC-001      1 

&lt;&gt; 中的东西是列标签。

我知道标签可以使用View() 查看,但我只是想知道是否还有一种方法可以在控制台中查看它们。谢谢!

编辑:

在读入数据后,所有变量都使用Hmisc::label() 命令标记。例如,label(data$variable1) &lt;- "label1"

【问题讨论】:

  • 如何在 data.frame 上设置“标签”?
  • 对每个变量使用Hmisc::label(data$variable) &lt;- "label"
  • 这可能值得包含在问题本身中,因为它不是data.frame 甚至tibble 的标准部分
  • 已添加,感谢您的建议
  • 作为一种解决方法,您可以创建自己的“head”函数,将标签添加为 data.frame 的第一行,然后打印 head

标签: r


【解决方案1】:

感谢@MRau 的建议,这里有一个简单的函数,可以在控制台中查看时打印标签和变量名:

lhead <- function(df, n=7){  

  is.Date <- function(x){
    ifelse(inherits(x, c("POSIXt", "POSIXct", "Date")), TRUE, FALSE)
  }

  df2 <- df
  df2[sapply(df2, is.factor)] <- lapply(df2[sapply(df2, is.factor)], as.character)
  df2[sapply(df2, is.Date)] <- lapply(df2[sapply(df2, is.Date)], as.character)
  tmp <- rbind(label(df), df2)
  head(tmp, n)  
}

编辑:

日期有问题,因此包含额外的日期位

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多