根据另一个数据集中的值更改一个数据集中的值

Change the values in one data set based on the values in another

我遇到以下问题:

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)

如何更改 edges$from 的值以匹配 nodes$number 中的值?

您可以使用以下内容,

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