You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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)

代码说明

  1. 用lapply遍历dfl中的每一列变量
  2. 通过val_lab()函数获取对应列的自定义值标签名称
  3. 使用tolower()将标签统一转为小写,匹配目标输出格式
  4. 最后通过unlist()和as.list()将结果整理为要求的列表结构

运行上述代码后,输出结果为:

[[1]]
[1] "all"

[[2]]
[1] "version"

[[3]]
[1] "amp"

内容的提问来源于stack exchange,提问作者potro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:35:50