我有一个大的旧数据集,我想以编程方式标记。为此,我使用了包中的look_for()
函数labelled
来创建变量和标签的 df,我想循环通过这些函数将标签分配给我的变量。下面是一个简单的例子:
library(labelled)
# create table of vars and add some labels
vlabels <- labelled::look_for(mtcars) %>%
mutate(label = paste0("label for ", variable))
vlabels 内容:
> vlabels
pos variable label col_type values
1 mpg label for mpg dbl
2 cyl label for cyl dbl
3 disp label for disp dbl
4 hp label for hp dbl
5 drat label for drat dbl
6 wt label for wt dbl
7 qsec label for qsec dbl
尝试分配标签:
for(v in length(vlabels$variable)){
var = vlabels$variable[v]
vlabel = vlabels$label[v]
attr(mtcars[var], 'label') <- vlabel
}
检查输出和我的标签没有出现:
attr(mtcars$mpg, 'label')
> attr(mtcars$mpg, 'label')
NULL
不知道我在这里缺少什么,除了循环不好,我应该使用 apply。谢谢!