如何找到两个数据集之间的相似性,并生成一个由这些重合的行组成的新数据框?

问题描述 投票:0回答:1

我在一个文件中获得了对1000多个电台的无线电探空仪观测结果,并实际发现了我感兴趣的电台列表(81)。我需要制作一个新的数据框,其中将包含第一个文件的行。

因此,我有两个数据集从.txt文件导入到R中。第一个是数据框6694668x6,第二个是81x1,其中第二个数据集的行与第一个数据集的第1列值结合在一起(值看起来像这样: ACM00078861)。

d = data.frame(matrix(ncol = 6, nrow = 0)) 
for(i in 1:81){ 
  for (j in 1:6694668) {
    if(stations[i,1] == ghgt_00z.mly[j,1]){ 
      rbind(d,ghgt_00z.mly[j,] ) 
      j + 1 
    } else {j+1}
  }
}

我想生成一个新的数据帧,看起来像“ ghgt_00z.mly”,但只包含“站点”中列出的站点行。Ofc,代码运行了几天,我只收到警告消息。请帮帮我!

r bigdata
1个回答
0
投票

有很多选择方法。我过时使用经典merge()

res <- merge(x=stations, y=ghgt_00z.mly, by='common_coulmn_name', all.x = TRUE)

其中common_coulmn_name是两个df中存在的相同列名。结果,您将两个df与两个数据集中的所有列都合并在一起,可以根据需要将其删除。

第二个有用的选择是:

library(dplyr)
inp <- ghgt_00z.mly$column_of_interest
res <- filter(stations, grepl(paste(inp, collapse="|"), column_in_stations))

[inpcolumn_in_stations应该包含相同的值。

由于我没有数据集,所以无法检查这些解决方案,因此我无法保证它们是否能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.