Сравнение двух фреймов данных с одинаковыми именами столбцов и строк - PullRequest
0 голосов
/ 14 января 2020

У меня есть два фрейма данных с одинаковыми именами столбцов и строк, но разные значения.

>data_tls

plot_id    max   min   mean   std   vol
mf20       20.04 2.23  8.4     3.45 201
mf21       25.24 3.4   4.3     5.5  304
mf22       28.34 5.3   6.2     2.45 240
mf23       30.4  2.05  10.4    6.06 403

>data_uls

plot_id    max   min   mean   std   vol
mf20       19.09 4.22  6.2     4.45 220
mf21       20.2  2.6   5.3     4.5  305
mf22       32.3  4.3   2.2     3.45 255
mf23       28.4  3.05  8.05    5.85 386

Я хочу сравнить значения в этих наборах данных и выбрать значения, отличающиеся более чем на 20%. Я пытаюсь использовать пример пакета CompareDF: https://www.r-bloggers.com/comparing-dataframes-in-r-using-comparedf/.

compareData <- compare_df(data_tls, data_uls, c("Plot_name"))
compareData$comparison_df

Однако print(compareData$html_output) возвращает Null. Я был бы очень признателен, если кто-то любезно поможет решить эту проблему или порекомендует любое другое решение.

1 Ответ

0 голосов
/ 14 января 2020

Чтобы получить TRUE / FALSE (логическую) матрицу, используйте

res <- data_tls > data_uls * 1.2 | data_tls < data_uls * 0.8

Примечание: data.frame s может содержать только числовые столбцы, поэтому вы должны удалить, например. столбец plot_id (или выберите только числовые столбцы в вышеприведенном выражении)!

Вы можете суммировать различия, подсчитывая строки или столбцы, например

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