R语言如何提取列表各元素中的唯一字符串并输出指定格式
你需要的操作可以分为两步:1. 对列表每个向量去重、剔除NA;2. 将不等长的向量补全为相同长度后转为tibble,以下是完整可运行实现:
# 加载tibble包(仅转tibble格式时需要,不用tibble可省略) library(tibble) # 第一步:处理列表所有元素,剔除NA值并保留唯一字符串 df_list_clean <- lapply(df_list, function(x) { unique(x[!is.na(x)]) }) # 第二步:计算所有向量的最大长度,用于补全短向量 max_len <- max(lengths(df_list_clean)) # 第三步:将所有向量补NA到统一长度,再转为tibble df_list_pad <- lapply(df_list_clean, function(x) { c(x, rep(NA_character_, max_len - length(x))) }) result <- as_tibble(df_list_pad)
运行后打印result即可得到你需要的输出:
# A tibble: 4 × 5 nr1 nr2 nr3 nr4 nr5 <chr> <chr> <chr> <chr> <chr> 1 A A AA AA Ae 2 Ab AA Ac Ac Ad 3 Ac NA Ad Ad Af 4 AA NA Af NA AA
如果需要纯基础R实现(不需要加载任何包),最后一步可以直接转普通数据框:
result_df <- as.data.frame(do.call(cbind, df_list_pad), stringsAsFactors = FALSE)
如果只需要处理后的目标列表,不需要转数据框/ tibble,直接使用第一步输出的df_list_clean即可。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

