gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:05:03 25 4
gpt4 key购买 nike

我有几个具有相似(但不相同)系列变量(列)的数据框。我想找到一种方法让 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com