I want to replace multiple values in an R
dataframe using setNames
as described in https://stackoverflow.com/a/7548031/4169924, but it gives (seemingly) unexpected results:
df1 <- data.frame(Measure = c("Min", "min", "Minimum"), Value = c(1,2,3))
map1 = setNames(c("Minimum", "Minimum", "Minimum"), c("Min", "min", "Minimum"))
df1$Measure <- map1[df1$Measure]
df1
Gives the expected result:
Measure Value
1 Minimum 1
2 Minimum 2
3 Minimum 3
However, for
df2 <- data.frame(Measure = c("Min", "min", "Minimum", "MaxVal"), Value = c(1,2,3,4))
map2 = setNames(c("Minimum", "Minimum", "Minimum", "MaxVal"), c("Min", "min", "Minimum", "MaxVal"))
df2$Measure <- map2[df2$Measure]
df2
I get:
Measure Value
1 Minimum 1
2 Minimum 2
3 MaxVal 3
4 Minimum 4
Where Measure for rows 3 and 4 seems to be incorrectly replaced. Why?