R语言嵌套列表特定值条件替换及空列表补NA的apply实现咨询
R语言apply族实现嵌套列表过滤逻辑
实现代码
你可以直接使用lapply遍历list_items的每个子元素完成需求,完整代码如下:
# 构造示例数据(可跳过,直接替换为你的真实数据) data <- list( list_items = list( c("633", "0"), c("0"), c("0", "357", "-1", "A21") ) ) # 核心处理逻辑 data$list_items <- lapply(data$list_items, function(item) { # 过滤掉所有"0"和"-1"元素 filtered <- item[!item %in% c("0", "-1")] # 过滤后为空则返回"NA",否则返回过滤结果 if (length(filtered) == 0) { return("NA") } return(filtered) })
输出验证
运行后打印结果即可看到和你预期完全一致的输出:
> data$list_items[1] [[1]] [1] "633" > data$list_items[2] [[1]] [1] "NA" > data$list_items[3] [[1]] [1] "357" "A21"
补充说明
如果你需要的是R原生的缺失值标记而非字符串"NA",只需要将返回值替换为NA_character_即可,其他逻辑保持不变。
内容的提问来源于stack exchange,提问作者Arjun Mohan
相关产品推荐
相关产品推荐

