Is there a R function to return the value for name 2 in score 2? For example, I want Bob's score in the score 2 slot for Joe by getting Bob's score from the third row. Any help would be much appreciated. If this question has already been answered, happy to look at other answers.
| Name | Score | Name 2 | Score 2 |
|---|---|---|---|
| Joe | 100 | Bob | |
| Mary | 95 | Joe | |
| Bob | 60 | Mary |
CodePudding user response:
We may use match to get the index and use that to return the 'Score'
df1$Score2 <- with(df1, Score[match(Name2, Name)])
-output
> df1
Name Score Name2 Score2
1 Joe 100 Bob 60
2 Mary 95 Joe 100
3 Bob 60 Mary 95
data
df1 <- structure(list(Name = c("Joe", "Mary", "Bob"), Score = c(100,
95, 60), Name2 = c("Bob", "Joe", "Mary")),
class = "data.frame", row.names = c(NA,
-3L))
