How to map a column through a dictionary in R

前端 未结 2 1207
星月不相逢
星月不相逢 2021-01-18 10:47

I have a data frame in R. One column of this data frame takes values from 1 to 6. I have another data frame that maps this column. There is some way to substitute the values

2条回答
  •  攒了一身酷
    2021-01-18 11:22

    You can try

    v1 <- c(4, 2, 2, 3, 4, 1, 4, 4)
    LETTERS[v1]
    #[1] "D" "B" "B" "C" "D" "A" "D" "D"
    

    Suppose if your mapping dataset 2nd column is not just "LETTERS"

    d1 <- data.frame(Col1=c(1,3,4,2), Col2=c('j1', 'c9', '19f', 'd18'),
                         stringsAsFactors=FALSE)
    
    unname(setNames(d1[,2], d1[,1])[as.character(v1)])
    #[1] "19f" "d18" "d18" "c9"  "19f" "j1"  "19f" "19f"
    

    Or

    d1$Col2[match(v1, d1$Col1)]
    #[1] "19f" "d18" "d18" "c9"  "19f" "j1"  "19f" "19f"
    

提交回复
热议问题