gpt4 book ai didi

r - 如何使用 R 合并两个没有公共(public)列名的数据框

转载 作者:行者123 更新时间:2023-12-05 01:49:45 25 4
gpt4 key购买 nike

我有如下两个数据框:

df1:

col1 <- c("Snhg6", "Mt1")
col2 <- c("Lpar6", "Nufip2")
col3 <- c("Lasp1", "Pipox")
col4 <- c("Bcam", "Rhot2")
df1 <- data.frame(col1, col2, col3, col4)

# col1 col2 col3 col4
# 1 Snhg6 Lpar6 Lasp1 Bcam
# 2 Mt1 Nufip2 Pipox Rhot2

df2:

col10 <- c("Bcam", "Rhot2", "Lpar6" , "Snhg6")
df2 <- data.frame(col10)

# col10
# 1 Bcam
# 2 Rhot2
# 3 Lpar6
# 4 Snhg6

我想以某种方式合并它们,以找出 df1 的每一列中有多少项与 df2 的项匹配。我希望输出如下:

输出方向:

#  col1  col2 col3  col4
# Snhg6 Lpar6 NA Bcam
# NA NA NA Rhot2

我尝试使用下面的方法,但没有一个给出预期的结果。

library(dplyr)
output_df <- df1 %>% full_join(df2)

library(tidyr)
output_df <- crossing(df1,df2)

如何获得所需的输出?谢谢。

最佳答案

df1_mat <- as.matrix(df1)
df1_mat[!df1_mat %in% df2$col10] <- NA
as.data.frame(df1_mat)
#> col1 col2 col3 col4
#> 1 Snhg6 Lpar6 <NA> Bcam
#> 2 <NA> <NA> <NA> Rhot2

关于r - 如何使用 R 合并两个没有公共(public)列名的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73742428/

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