Je vais fusionner les deux DF ci-dessous dans l'ordre croissant par ordre de temps, non-duplication. Mon objectif est de disposer également de deux nouvelles variables.
time var1 var2 0.5 0 6 1.5 1 0 2.5 0 2 3.5 1 1 4.5 2 0 5.5 1 0 ...
3 Réponses :
Si j'ai compris comment votre Dataframe ressemble correctement (quelque chose qui serait créé via :) alors vous obtenez ce que vous recherchez par: P> df_new = data.frame(time = sort(unique(c(df1$time, df2$time))), var1 = sapply(sapply(time, function(x) {df1$freq[df1$time == x]}), function(x) {ifelse(length(x) == 0, 0, x)}), var2 = sapply((sapply(time, function(x) {df2$freq[df2$time == x]})), function(x) {ifelse(length(x) == 0, 0, x)}))
df1 <- read.table(text =
'time freq
1 1.5 1
2 3.5 1
3 4.5 2
4 5.5 1
5 8.5 2
6 9.5 1
7 10.5 1
8 11.5 1
9 15.5 1
10 16.5 1
11 18.5 1
12 23.5 1
13 26.5 1', header = TRUE, stringsAsFactor = FALSE)
df2 <- read.table(text =
'time freq
1 0.5 6
2 2.5 2
3 3.5 1
4 6.5 1
5 15.5 1', header = TRUE, stringsAsFactor = FALSE)
une approche plus simple en utilisant Tidyverse code> ou
dplyr code>:
Pouvez-vous reformater votre question et fournir exemple reproductible