#r #dataframe
#r #фрейм данных
Вопрос:
У меня есть 2 df, которые я хочу сравнить по их значениям их переменной «element» (оба имеют одинаковые значения, поскольку они получены из одного расплавленного df)
#фиктивный dfs
X3500um_no_touch <- data.frame(element= c("1", "1", "2", "2", "3", "3" ), distance = c(4, 4, 8, 8, 7, 7), mean_raw = c(1794, 1794, 5794, 5794, 1754, 1754))
X3500um_touch <- data.frame(element= c("1", "1", "1", "2", "3", "3" ), distance = c(4, 4, 4, 8, 7, 7), mean_raw = c(1894, 1894, 1894, 4794, 754, 754))
Я ищу способ получить такой набор данных, но я не знаю, как поступить:
#new_df
element distance mean_raw
1 4 100 # 1894 - 1794
2 8 -1000 # 4794 - 5794
3 7 -1000 # 754 - 1754
поскольку значения в элементе не совпадают, я не могу просто сделать
new_df$element <- df2$element - df1$element
Любой простой способ сделать это? Спасибо!!
Ответ №1:
Предполагая, что в каждом фрейме данных есть элемент и расстояние, которые находятся в другом, и они упорядочены одинаково, но проблема заключается только в том, что есть дубликаты (что имеет место в вопросе), которые мы можем использовать unique
в обоих фреймах данных, а затем вычесть:
transform(unique(X3500um_no_touch), mean_raw = unique(X3500um_touch)$mean_raw - mean_raw)
## element distance mean_raw
## 1 1 4 100
## 3 2 8 -1000
## 5 3 7 -1000