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

如何将嵌套列表中data.frame的元素名、列名及值统一转为大写?

将嵌套列表的元素名、DataFrame列名及变量值全部转为大写

原始数据

my_list <- list(my_name = data.frame(c("Juan", "CArlos", "RRicardo")),
                my_data = data.frame(c("Lunes", "Martes", "Miercoles")))

解决方案(基础R实现)

无需额外依赖包,用基础R函数即可完成全部转换:

# 1. 把列表元素名转为大写
names(my_list) <- toupper(names(my_list))

# 2. 遍历每个DataFrame,处理列名和变量值
my_list <- lapply(my_list, function(df) {
  # 转换列名为大写
  names(df) <- toupper(names(df))
  # 把所有变量值转为大写(适用于字符型列)
  df[] <- lapply(df, toupper)
  return(df)
})

解决方案(tidyverse实现)

如果习惯使用tidyverse生态,代码会更简洁直观:

library(tidyverse)

my_list <- my_list %>%
  # 重命名列表元素为大写
  set_names(toupper(names(.))) %>%
  # 遍历每个DataFrame做转换
  map(function(df) {
    df %>%
      # 转换列名为大写
      rename_with(toupper) %>%
      # 转换所有列的变量值为大写
      mutate(across(everything(), toupper))
  })

验证结果

执行上述代码后,打印my_list就能得到期望的输出:

print(my_list)

输出示例:

$MY_NAME
  C..JUAN....CARLOS....RRICARDO..
1                            JUAN
2                          CARLOS
3                        RICARDO

$MY_DATA
  C..LUNES....MARTES....MIERCOLES..
1                             LUNES
2                            MARTES
3                         MIERCOLES

内容的提问来源于stack exchange,提问作者Nicolás Sacco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:25:38