簡體   English   中英

重新編碼r中字母和數字組成的變量

[英]Recoding a variable that is both letters and numbers in r

我有一個用字母和數字編碼的變量,我試圖將其全部轉化為數字。 字母是A到Z,我希望它們的編碼是1到26。數字輸入是2到8,並且我希望它們的編碼是27到33。我似乎找不到解決這個問題的好方法。

例如,我的變量看起來類似於:

var = c('A',2,3,8,'C','W',6,'T')

我希望A = 1、2 = 27、3 = 28、8 = 33,C = 3,W = 23、6 = 31和T = 20。

基本上var是A:Z和2:8。 但是數字[2:8]必須大於字母數字。 字母需要與它們在字母表中的位置相對應。

match(var, c(LETTERS, 2:8))看起來也能為您提供所需的答案。

我們可以使用

library(dplyr)
v1 <- setNames(as.character(27:33), 2:8)[var]
v2 <- setNames(as.character(1:26), LETTERS)[var]

as.vector(coalesce(v1, v2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM