R语言获取两个数据框公共列名及查询向量公共元素方法
R语言相关操作解答
1. 查找向量A中存在于向量B内的元素
针对你给出的示例向量:
names_1 <- c("A", "B", "C", "D") names_2 <- c("C", "D", "E")
有两种常用实现方式:
- 方法1:使用
%in%匹配运算符
该方式会保留names_1的元素原有顺序
result <- names_1[names_1 %in% names_2] # 输出结果为 "C" "D"
- 方法2:使用
intersect()集合交集函数
直接返回两个向量的共有元素,代码更简洁
result <- intersect(names_1, names_2) # 输出结果为 "C" "D"
2. 获取两个数据框的公共列名
同样可以借助上述的集合匹配逻辑实现,示例如下:
首先构造示例数据框:
df1 <- data.frame(A = 1:3, B = 4:6, C = 7:9, D = 10:12) df2 <- data.frame(C = 13:15, D = 16:18, E = 19:21)
实现方法:
- 方法1:使用
intersect()直接匹配列名
common_cols <- intersect(colnames(df1), colnames(df2)) # 输出结果为 "C" "D"
- 方法2:使用
%in%运算符
如果需要严格按照第一个数据框的列顺序返回结果,可以用该方法:
common_cols <- colnames(df1)[colnames(df1) %in% colnames(df2)] # 输出结果为 "C" "D"
内容的提问来源于stack exchange,提问作者Muhammad Kamil
相关产品推荐
相关产品推荐

