我有一个包含两个种群fr2100
和nr
的数据集ind
,其中种群中的每个个体都有一个唯一的编号,每个个体都有一个坐标值Dim.1
和Dim.2
,如下图所示:
> ind <- get_pca_ind(res_acp)
> ind
Principal Component Analysis Results for individuals
===================================================
Name Description
1 "$coord" "Coordinates for the individuals"
2 "$cos2" "Cos2 for the individuals"
3 "$contrib" "contributions of the individuals"
# isolate the population 'fr2100'
> fr2100 <- ind$coord[substr(rownames(ind$coord), 1, 7) == 'fr2100_', ]
> str(fr2100)
'data.frame': 6873 obs. of 3 variables:
$ rowname: chr "fr2100_72" "fr2100_73" "fr2100_74" "fr2100_75" ...
$ Dim.1 : num 1.37 1.3 1.25 1.25 1.18 ...
$ Dim.2 : num -1.249 -1.028 -0.835 -0.624 -0.483 ...
# isolate the population 'nr'
> nr <- ind$coord[substr(rownames(ind$coord), 1, 3) == 'nr_', ]
> str(nr)
'data.frame': 4897 obs. of 3 variables:
$ rowname: chr "nr_174" "nr_175" "nr_176" "nr_177" ...
$ Dim.1 : num -3.74 -3.44 -3.26 -2.97 -3.88 ...
$ Dim.2 : num 1.26 1.55 1.7 1.91 1.3 ...
**我的问题:**我试图理解我如何能够在fr2100
的6873个个体中,从nr
的4897个个体中,只选择在大约0.01的距离处具有Dim.1
AND Dim.2
的个体,这些个体表示在这个点云中:
换句话说,可以在单个nr
的周长(在0.01处)内的每个单个fr2100
,如这里理论上表示的
我对任何答案都感兴趣。如果需要,我可以提供更多的信息。提前感谢你。
1条答案
按热度按时间gc0ot86w1#
我想
distance_semi_join()
从fuzzyjoin package是一个非常直接和简洁的方式来过滤欧几里德距离。其他的变体如distance_left_join()
也值得考虑,因为它们将在结果 Dataframe 中提供一个可选的距离变量。最初的答案是关于单个参考点与点的可能性,在这个
dist()
from base中也相当直接:即-https://i.imgur.com/jiqHmXn.png