vetA <- c(1,2,1,2,1,3,4,1,2,3,2,1,4)

有什么可能性可以进行以下交换?
交换:
  • 1 --> 3
  • 2 --> 4
  • 3 --> 2
  • 4 --> 1

  • 我已经试过了:
    vetB <- as.factor(vetA)
    levels(vetB) <- c(3,4,2,1)
    vetA <- as.integer(vetB)
    
    # because
    print(vetB)
    # [1] 3 4 3 4 3 2 1 3 4 2 4 3 1
    #Levels: 3 4 2 1
    

    没用你能帮我一下吗?

    最佳答案

    一种可能的选择是使用match:

    vetA <- c(1,2,1,2,1,3,4,1,2,3,2,1,4)
    old=c(1,2,3,4)
    new=c(3,4,2,1)
    new[match(vetA,old)]
    

    输出:
    3 4 3 4 3 2 1 3 4 2 4 3 1
    

    希望这可以帮助!

    09-25 21:31