基于R语言expss包从数据框指定标记列提取标签的需求
提取数据框列的标签并生成目标列表
针对需求从df的all、vs1、am1列提取标签并输出格式为("all","version","amp")的列表,可通过以下代码实现:
library(expss) df <- mtcars df$vs<-factor(df$vs, levels=c(1,0), labels = c("version","others")) df$am<-factor(df$am, levels=c(1,0), labels = c("AMP","others")) df$all<- 1 df$vs1<-ifelse(df$vs=='version',1,NA) df$am1<-ifelse(df$am == 'AMP', 1, NA) val_lab(df$all)<-c("All"=1) val_lab(df$vs1)<-c("version"=1) val_lab(df$am1)<-c("AMP"=1) dfl <- list(df$all,df$vs1,df$am1) # 核心提取与格式化代码 tag_list <- lapply(dfl, function(col) { # 提取值标签的名称 lab <- names(val_lab(col)) # 转换为小写 tolower(lab) }) %>% unlist() %>% as.list() # 输出结果 print(tag_list)
代码说明
- 用
lapply遍历dfl中的每一列变量 - 通过
val_lab()函数获取对应列的自定义值标签名称 - 使用
tolower()将标签统一转为小写,匹配目标输出格式 - 最后通过
unlist()和as.list()将结果整理为要求的列表结构
运行上述代码后,输出结果为:
[[1]] [1] "all" [[2]] [1] "version" [[3]] [1] "amp"
内容的提问来源于stack exchange,提问作者potro
相关产品推荐
相关产品推荐

