r - 有没有办法比较两个数据框中具有不同列号的列并删除与某一列不匹配的行?
问题描述
我有 2 个数据框:all_species
(155 obs,1 var)和all_taxa
(33124 obs,8 个变量)。我想要做的是在列中找到存在于all_species$species
列中的观察结果all_taxa$species
,并且只将这些观察结果保留在all_taxa
数据框中,从而产生 155 个 obs 的 8 个变量。
到目前为止我所做的是创建 2 个向量:
species_vector_2 <- as.vector(all_species$Species)
all_taxa_vector <- as.vector(all_taxa $Species)
然后我使用以下代码来确定是否species_vector_2
存在于all_taxa_vector
:
all_taxa %in% species_vector_2
输出给了我一长串TRUE
或FALSE
值。我想要的是FALSE
从数据框中删除值all_taxa
。所以我试图索引数据框:
all_taxa[(all_taxa_vector %in% species_vector_2)]
这给了我以下错误:
Error: Length of logical index vector for `[` must equal number of columns (or 1):
* `.data` has 8 columns
* Index vector has length 33124
Call `rlang::last_error()` to see a backtrace
所以我的问题是,有没有办法根据我想要索引的特定列(all_taxa$species
)来索引它。
理想的解决方案将导致all_taxa
数据框仅包含来自 的物种all_species$species
,同时保留 中存在的其他变量all_taxa
。因此all_taxa
将有 155 个观察值和 8 个变量。
all_species
数据框
Species
1 Ichthyomyzon castaneus
2 Ichthyomyzon fossor
3 Ichthyomyzon unicuspis
4 Lethenteron appendix
5 Petromyzon marinus
6 Oreochromis niloticus
all_taxa
数据框
SpecCode Species Genus Subfamily Family Order Class SuperClass
<dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 2 Oreochromis niloticus Oreochromis Pseudocrenilabrinae Cichlidae Perciformes Actinopteryg~ Osteichthy~
2 3 Oreochromis mossambicus Oreochromis Pseudocrenilabrinae Cichlidae Perciformes Actinopteryg~ Osteichthy~
3 4 Engraulis ringens Engraulis Engraulinae Engraulidae Clupeiform~ Actinopteryg~ Osteichthy~
4 5 Orthopristis chrysopte~ Orthopristis Haemulinae Haemulidae Perciformes Actinopteryg~ Osteichthy~
5 6 Coryphaena hippurus Coryphaena NA Coryphaenidae Perciformes Actinopteryg~ Osteichthy~
6 7 Coryphaena equiselis Coryphaena NA Coryphaenidae Perciformes Actinopteryg~ Osteichthy~
解决方案
如果没有可重复的数据集,很难确定,但我认为这应该可行:
library("tidyverse")
all_taxa %>%
filter(species %in% unique(all_species$species))
推荐阅读
- xero-api - 我可以在没有 pfx 文件的情况下使用 XeroCoreApi 连接到私有应用程序吗?
- firebase - 如何安全地将基于时间的凭据传递给谷歌云功能?
- c# - 启用 Unity 中另一个场景中存在的游戏对象?
- javascript - 是否可以从 r 控制台修改 .js 文件?
- sql - 带有标识字段的 Sybase INSERT INTO?
- python - 将动画绘制到 Jupyter Notebook:为什么在内部范围(即在函数中)调用 HTML(animator.to_html()) 时不起作用?
- javascript - 在我的应用程序上运行“ng serve”时“找不到模块'@angular/compiler-cli/ngcc'”
- java - Angular向java发送错误的日期格式并且无法在表中创建对象
- jquery - 调整颜色框覆盖以适应 div 而不是屏幕宽度
- go - 如何测试 http.Redirect 使用正确的重定向 URI?