gpt4 book ai didi

r - 计算多个数据框之间匹配的列数

转载 作者:行者123 更新时间:2023-12-02 09:08:37 24 4
gpt4 key购买 nike

我有几个数据框,其中有一些匹配的列(名称),我想知道有多少。我现在使用这个函数来合并它们:

dflist <- list(d1, d2)
Reduce(function(x, y) merge(x, y, all=TRUE), dflist, accumulate=FALSE)

但在我查看之前我不知道有多少匹配。或者,我想删除不匹配的列,而不是用 NA 填充。

编辑,添加示例:

d1 = mtcars
d2 = mtcars[, 1:4]
d3 = mtcars[, 3:5]
dflist = list(d1,d2,d3)

dflist <- list(d1, d2)
Reduce(function(x, y) merge(x, y, all=TRUE), dflist, accumulate=FALSE

最佳答案

这是一个例子:

d1 = mtcars
d2 = mtcars[, 1:4]
d3 = mtcars[, 3:5]
dflist = list(d1,d2,d3)

现在获取 df 列表中匹配的列名称:

Reduce(intersect, lapply(dflist, names))
# [1] "disp" "hp"

然后,您可以仅使用选定的公共(public)列继续合并过程,例如使用:

common_cols = Reduce(intersect, lapply(dflist, names))

Reduce(function(...) merge(..., all=TRUE),
lapply(dflist, function(x) x[, common_cols, drop=FALSE]))

关于r - 计算多个数据框之间匹配的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55040199/

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