Сравнение столбцов данных без многих циклов for и операторов if - PullRequest
0 голосов
/ 28 января 2019

Я совершенно новичок в 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

Я хочу найти, сколько действительно уникальных значений существует в сайте скоординированных действий, и посмотреть, повторяются ли значения втри кадра данных.Я буду считать любые значения, которые согласуются в пределах 0.3, «одинаковыми», т.е.не уникальный.Затем я хотел бы создать таблицу с этими уникальными значениями координаты и другой столбец, в котором указывалось бы, какие кадры данных содержат это значение.Таким образом, 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) будет найдено в нескольких кадрах данных, я могу в итоге усреднить его, но пока это не важно.

Я начал создавать цикл for с несколькими операторами if, чтобы сделать это, но это становилось довольно сложным.Вероятно, в R есть более простой способ запрограммировать это с помощью функций, чтобы получить аналогичный результат.

Пожалуйста, дайте мне знать, если вопрос не ясен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...