2016-04-27 17 views
0

ich folgendes Problem:basierend auf den Werten in einem anderen

names <- c("Peter", "Gabriel", "James", "Philip") 
city <- c("LA", "NY","Chicago","Chicago") 
number <- seq(1, length(names)) 

from <- c("Peter", "Peter", "Gabriel", "James", "James") 
to <- c("James","Gabriel", "Philip", "Gabriel", "Philip") 

nodes <- data.frame(names, city, number) 
edges <- data.frame(from, to) 

Wie ändere ich die Werte von edges$from die in nodes$number passen?

+4

Ihre Frage ist nicht klar. Was ist Ihre erwartete Leistung? Sie möchten die Werte ersetzen, eine neue Spalte hinzufügen, die Datenrahmen zusammenführen oder etwas anderes? – Molx

+0

Sie sollten Daten in R zusammenführen. Siehe die 'merge()' Funktion, oder 'inner_join' von' dplyr' – MrFlick

Antwort

0

Sie die folgende verwenden können,

edges$from <- sapply(edges$from, function(i)nodes$number[match(i, nodes$names)]) 
edges 
# from to 
#1 1 James 
#2 1 Gabriel 
#3 2 Philip 
#4 3 Gabriel 
#5 3 Philip 
+1

Ausgezeichnet! Danke Sotos, das hat wunderbar funktioniert! – fjvost

Verwandte Themen