R 使用haven::labeled动态创建值标签
我使用haven::labeled设置变量的值标签。目标是创建一个完整的文档数据集,我可以将其导出到SPSS 现在,假设我有一个值及其值标签的dfR 使用haven::labeled动态创建值标签,r,spss,r-haven,R,Spss,R Haven,我使用haven::labeled设置变量的值标签。目标是创建一个完整的文档数据集,我可以将其导出到SPSS 现在,假设我有一个值及其值标签的dfvalue\u标签。我还有I dfdf_data,其中包含我想要分配值标签的变量 value_labels <- tibble( value = 1:6, labels = paste0("value", 1:6) ) df_data <- tibble( id = 1:10, var = floor(runif(10,
value\u标签。我还有I dfdf_data
,其中包含我想要分配值标签的变量
value_labels <- tibble(
value = 1:6,
labels = paste0("value", 1:6)
)
df_data <- tibble(
id = 1:10,
var = floor(runif(10, 1, 6))
)
但是,由于我有超过16个数据集,将近7000列,我需要一种更动态的方法来分配值标签。请注意,据我所知,“values1”=1
和values1=1
(引号)之间存在差异,这取决于变量类别
请注意,我使用了haven::labeled
,因为这是唯一的方法,到目前为止,我已经能够成功导出带有值标签的.sav文件。我试过了,但运气不好 我们可以deframe
value\u labels,将其用作labeled
函数中的labels
参数
library(dplyr)
library(tibble)
df_data %>%
mutate(var = haven::labelled(var, labels = deframe(value_labels[2:1])))
如果有更多列,则使用mutate\u at
df_data %>%
mutate_at(vars(var), ~ haven::labelled(., labels = deframe(value_labels[2:1])))
对于多个数据集,将它们放在列表中
,并使用映射
在列表上循环并立即应用
library(purrr)
keyval <- deframe(value_labels[2:1])
list(df_data, df_data) %>%
map( ~
.x %>%
mutate_at(vars(var), ~ haven::labelled(., labels =
keyval)))
库(purrr)
keyval%
地图(~
.x%>%
在(vars(var),~haven::labeled(,labels=
keyval)))
现在我扩展dfvalue\u标签
,使其包含var1
和var2
的值标签<代码>价值标签@oskjerv你能不能作为一个新问题发布。
library(purrr)
keyval <- deframe(value_labels[2:1])
list(df_data, df_data) %>%
map( ~
.x %>%
mutate_at(vars(var), ~ haven::labelled(., labels =
keyval)))