我在一个文件中获得了对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,代码运行了几天,我只收到警告消息。请帮帮我!
有很多选择方法。我过时使用经典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))
[inp
和column_in_stations
应该包含相同的值。
由于我没有数据集,所以无法检查这些解决方案,因此我无法保证它们是否能正常工作。