숫자, 대문자, 대시 및 점으로 이루어진 항목으로 구성된 4 열 및 20,000 개가 넘는 행의 데이터 행렬이 있습니다. 나는 그들의 ASCII 코드, 숫자로 표현하고 싶다. strtoi, chartoraw 및 utf8toint 함수를 시도했지만 오류가 계속 발생했습니다. 주로 "대체 할 항목 수는 대체 길이의 배수가 아닙니다."R 숫자의 문자 행렬
어떻게 NA 강제 변환없이 전체 행렬을 숫자 행렬로 변환 할 수 있습니까?
숫자, 대문자, 대시 및 점으로 이루어진 항목으로 구성된 4 열 및 20,000 개가 넘는 행의 데이터 행렬이 있습니다. 나는 그들의 ASCII 코드, 숫자로 표현하고 싶다. strtoi, chartoraw 및 utf8toint 함수를 시도했지만 오류가 계속 발생했습니다. 주로 "대체 할 항목 수는 대체 길이의 배수가 아닙니다."R 숫자의 문자 행렬
어떻게 NA 강제 변환없이 전체 행렬을 숫자 행렬로 변환 할 수 있습니까?
질문을 모르겠지만 문자의 행렬을 숫자로 변환하려면 암호화 요약을 고려하십시오. 의견에 따라
x <- matrix(letters[1:9],3,3)
x
[,1] [,2] [,3]
[1,] "a" "d" "g"
[2,] "b" "e" "h"
[3,] "c" "f" "i"
digest(x)
[1] "b94e24be564d1af6dfedba8c3616b56d"
안녕하십니까, 답변 해 주셔서 감사합니다! 목록에있는 숫자를 하나의 숫자로 조합 해 봅니다. 예를 들어, c (65, 89, 65, 69, 73, 65, 73, 65, 73, 66, 46)는 행렬의 요소 중 하나입니다. 658965697365736646으로 표현하고이를 정수로 해석하고 싶습니다. 그게 가능하니? –
> (tmp <- matrix(c(LETTERS[1:20],"3","?","a","-"),6))
[,1] [,2] [,3] [,4]
[1,] "A" "G" "M" "S"
[2,] "B" "H" "N" "T"
[3,] "C" "I" "O" "3"
[4,] "D" "J" "P" "?"
[5,] "E" "K" "Q" "a"
[6,] "F" "L" "R" "-"
> (tmp <-apply(tmp,c(1,2), utf8ToInt))
[,1] [,2] [,3] [,4]
[1,] 65 71 77 83
[2,] 66 72 78 84
[3,] 67 73 79 51
[4,] 68 74 80 63
[5,] 69 75 81 97
[6,] 70 76 82 45
> intToUtf8(tmp)
[1] "ABCDEFGHIJKLMNOPQRST3?a-"
편집 : 난 당신이 행렬에서 다른 클래스를 가질 수있는 방법을 얻을 수
#Altered paste function which we will call twice
pasteC <- function(x){paste(x,collapse="")}
#Replicate your example of a cell elements being a list
values <-c(LETTERS[1:20],"3","?","a","-")
#place in a data.frame
tmp <- data.frame(id = 1:20)
tmp$var <- list(values)
tmp$var.int <- sapply(tmp$var, function(x) pasteC(utf8ToInt(pasteC(x))))
tmp
안녕하세요, 정말 도움이 답변 해 주셔서 감사합니다! 이제, 하나의 숫자로 숫자 벡터를 연결하려고합니다. 예를 들어, c (65, 89, 65, 69, 73, 65, 73, 65, 73, 66, 46)는 행렬의 요소 중 하나입니다. 658965697365736646으로 표현하고이를 정수로 해석하고 싶습니다. 그게 가능하니? –
이')이'dput (머리 (your_matrix을 부여 – Tensibai
읽어 보시기 바랍니다. [좋은 질문을하는 법에 대한 정보] (http://stackoverflow.com/help/how-to-ask) 및 [재현 가능한 예제] 제공 방법 (http://stackoverflow.com/questions/5963269/) how-to-make-a-great-r-reproducible-example/5963610) 이것은 다른 사람들이 여러분을 도울 수있게 도와 줄 것입니다 .. – Jaap