J'ai un grand cadre de données de similarités entre les mots-clés que je voudrais changer en un format qui inclut toutes les similitudes par paires. Mon trame de données actuelle ressemble à:Convertir la trame de données R
> df
kwd1 kwd2 sim
1 a b 1
2 b a 1
3 c a 2
4 a c 2
et je voudrais le convertir en un data.frame de la forme:
> df
kwd1 kwd2 sim
a b 1
a c 2
b c 0
Merci pour toute aide!
Mon code à ce jour est:
df <- data.frame(c('a', 'b', 'c', 'a'), c('b', 'a', 'a', 'c'), c(.1,.1,.2,.2))
colnames(df) = c('kwd1', 'kwd2', 'sim')
> dput(df)
structure(list(kwd1 = structure(c(1L, 2L, 3L, 1L), .Label = c("a",
"b", "c"), class = "factor"), kwd2 = structure(c(2L, 1L, 1L,
3L), .Label = c("a", "b", "c"), class = "factor"), sim = c(1,
1, 2, 2)), .Names = c("kwd1", "kwd2", "sim"), row.names = c(NA,
-4L), class = "data.frame")
Votre résultat ne correspond pas à celui souhaité dans la question. –
J'ai noté sur ma première ligne que cela ne fonctionne que si l'ordre n'a pas d'importance. – Maiasaura
Je l'ai vu, mais il semble clair d'après la question qu'une seule des lignes 'a b 0.1' et 'b a 0.1' est censée rester. Il n'a pas dit lequel des deux avait la priorité, et j'ai supposé que c'était ce que votre mise en garde s'adressait. –