如何在R数据框中使用变量标签

如何在R数据框中使用变量标签,r,label,hmisc,R,Label,Hmisc,我试图分配,然后使用变量标签,然后把我的工作交给一个新手程序员谁是经验丰富的SPSS。 当另一个程序员使用数据时,她会想制作表格。她可能不记得h1是什么,但会知道“英尺高度”是什么 我已经指定了标签。现在我该如何使用它们 澄清:一旦我有了标签,我想用我使用列名的方式来使用标签。因此,在RStudio中,如果我键入“heights$”,我希望看到“heightsinfeet”作为一个选项。但是我不想丢失列名 library(Hmisc) # variable labels heights = da

我试图分配,然后使用变量标签,然后把我的工作交给一个新手程序员谁是经验丰富的SPSS。 当另一个程序员使用数据时,她会想制作表格。她可能不记得h1是什么,但会知道“英尺高度”是什么

我已经指定了标签。现在我该如何使用它们

澄清:一旦我有了标签,我想用我使用列名的方式来使用标签。因此,在RStudio中,如果我键入“heights$”,我希望看到“heightsinfeet”作为一个选项。但是我不想丢失列名

library(Hmisc) # variable labels
heights = data.frame(h1 = c(4,5,6, 4), h2 = c(48, 60, 72, 48))
label(heights$h1) = "Heights in feet"
label(heights$h2) = "Heights in inches"
heights

table(heights[[`Heights in feet`]]) # Not correct
table(heights[`Heights in feet`]) # Not correct
table(heights$`Heights in feet`) # Not correct
非常感谢您的想法。

图书馆(Hmisc)

高度=数据帧(h1=c(4,5,6,4),h2=c(48,60,72,48))

变量标签=c(h1=“高度单位英尺”,h2=“高度单位英寸”)

标签(高度)=as.list(变量标签[匹配(名称(高度)、名称(变量标签)))

标签(高度)

视图(高度)


不幸的是,基本索引操作不支持标签。最接近的基本子集策略与您拥有的最相似的是

table(heights[, label(heights)=="Heights in feet"])
如果这是一个常见的操作,您可以重新定义某个运算符来重载data.frame的该类型内容。比如说

`%%.data.frame` <- function(x, lbl) {
  x[,label(x)==lbl]
}

table(heights%%"Heights in feet")
`%%.data.frame`
`%%<-` <- function(x, ...)  UseMethod("%%<-")
`%%<-.data.frame` <- function(x, lbl, value) {
  x[,label(x)==lbl] <- value
  x
}
heights%%"Heights in feet" <- heights%%"Heights in feet"+1