r - 如何在不同的数据框中找到共同的变量?

标签 r dataframe

我有几个具有相似(但不相同)系列变量(列)的数据框。我想找到一种方法让 R 告诉我不同​​数据帧中的公共(public)变量是什么。

例子:

`a <- c(1, 2, 3)
b <- c(4, 5, 6)
c <- c(7, 8, 9)
df1 <- data.frame(a, b, c)
b <- c(1, 3, 5)
c <- c(2, 4, 6)
df2 <- data.frame(b, c)`

df1df2 ,我希望 R 用某种方式告诉我公共(public)变量是 bc .

最佳答案

1) 对于 2 个数据帧:

intersect(names(df1), names(df2))
## [1] "b" "c"

要获取 df1 中但 df2 中没有的名称:
setdiff(names(df1), names(df2))

1a) 对于任意数量的数据框(即获取所有数据框的通用名称):
L <- list(df1, df2)
Reduce(intersect, lapply(L, names))
## [1] "b" "c"

2) 另一种方法是使用 duplicated因为如果我们连接两个数据框的名称,通用名称将是重复的名称。
nms <- c(names(df1), names(df2))
nms[duplicated(nms)]
## [1] "b" "c"

2a) 要将其推广到 n 个数据帧,请使用 table并查找与数据帧出现相同次数的名称:
L <- list(df1, df2)
tab <- table(unlist(lapply(L, names)))
names(tab[tab == length(L)])
## [1] "b" "c"

关于r - 如何在不同的数据框中找到共同的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52860105/

相关文章:

r - 如何在 PCA 图中标记一些选择性样本

r - 合并 R 中的互补列

r - 订购 "mixed"向量(带字母的数字)

python - 如何让 pandas 根据特定日期变量将每一行视为一列?

python - 从 pandas 数据框中删除一组特定的过滤列中的空列

r - 根据 R 中的模式合并列

r - 使用 ggplot2 对条形图中的条进行排序

python - 使用 pd.read_clipboard 复制数据框时如何处理自定义命名索引?

python - 从数据帧中查找字符串内的子字符串索引

python - Pandas:如何将日期格式 %Y-%M-%D 转换为 %Y%M%D?