R data.frame保留同时出现在行名列名中的行列并删除不匹配观测
实现方法
核心代码
你只需要先提取行名与列名的交集,再用交集名称同时索引数据框的行和列即可完成筛选:
# 1. 计算行名、列名的共同值 common_ids <- intersect(rownames(myData), colnames(myData)) # 2. 同时筛选匹配的行和列 myData_filtered <- myData[common_ids, common_ids] # 可选操作:原数据集的列是list类型,若需要转成常规数值型方便后续分析可执行以下代码 # 转换后NULL值会自动转为NA myData_filtered <- as.data.frame(lapply(myData_filtered, function(col) as.numeric(unlist(col)))) rownames(myData_filtered) <- common_ids
效果说明
用intersect取交集后再同时索引行列,最终得到的数据集的行名和列名完全一致,自动丢弃了所有不匹配的行、列观测。如果不需要修改原始数据的list结构,跳过最后一步转换即可。
内容的提问来源于stack exchange,提问作者user113156
相关产品推荐
相关产品推荐

