我对R很陌生。
我想比较三个数据框,以查看它们是否在其中一列中包含相同的信息。
数据看起来像这样(仅更长):
df_1
id comment coord.x coord.y
1 <NA> 64.492 1186.803
2 <NA> 64.418 1185.560
3 <NA> 64.418 1183.001
4 <NA> 64.492 1180.953
5 <NA> 64.492 1179.345
6 <NA> 64.418 1177.517
7 <NA> 64.345 1175.396
df_2
id comment coord.x coord.y
1 <NA> 64.34 1186.73
2 <NA> 64.39 1185.42
3 <NA> 64.25 1183.04
4 #c 64.39 1181.80
5 #c 64.48 1175.26
6 <NA> 64.43 1173.41
7 <NA> 64.48 1170.12
df3
id comment coord.x coord.y
1 <NA> 64.600 1186.769
2 <NA> 64.513 1185.377
3 <NA> 64.513 1182.984
4 <NA> 64.559 1180.722
5 <NA> 64.603 1179.286
6 <NA> 64.429 1177.502
7 #c 64.429 1174.905
我想找到coord.y中有多少个真正唯一的值,并查看在三个数据框中是否重复了这些值。我将认为在0.3范围内一致的任何值都是“相同”,即。不是唯一的。然后,我想创建一个包含这些唯一coord.y值的表,以及另一个列,该列将指示哪些数据帧包含该值。因此111可以指示它存在于所有三个数据帧中,而010可以指示它仅存在于df_2中。一个额外的麻烦是,我还需要从搜索中排除任何包含#c的行。
因此,本示例的结果将是一个如下所示的矩阵:
result
1186.803 111
1185.560 111
1183.001 111
1180.953 101
1179.345 101
1177.517 101
1175.396 100
1173.41 010
1170.12 010
最后,将哪个值另存为唯一值并不重要。如果在多个数据帧中找到相同的值(在0.3范围内),我可能最终将其取平均值,但是现在这并不重要。
我开始用几个if语句构造一个for循环,但是这样做变得相当复杂。 R中可能有一种更简单的方法来对此进行编程以获取相似的结果。
如果问题不清楚,请告诉我。