2013-12-07 3 views
4

그래서 나는 (DF) as.matrix 내 데이터 프레임을 변환 행렬의 숫자는 다음과 같습니다.행렬이 숫자 R로 보지

> is.numeric(m[15,15]) 
[1] FALSE 

다른 사람이 누구입니까?

답변

3

사용

dims <- dim(m) 
m <- as.numeric(m) 
dim(m) <- dims  

아마 반드시 숫자에 임의의 data.frame을 변환하지 않습니다 함수


as.matrix에서 위를 포장합니다.
예 :

x <- data.frame(LETTERS) 
m <- as.matrix(x) 
is.numeric(x) 
# [1] FALSE 
is.character(x) 
# [1] TRUE 
+0

m -as.numeric (m)은 내 원래 매트릭스의 모든 값 목록을 제공합니다. 그다지 도움이되지 않습니다. –

+0

@TomA, 당신 말이 맞아요. 위의 편집을 참조하십시오 –

+0

나는 그것을 알아 냈습니다. 그러나 당신의 방식도 효과가 있습니다. 편집 해 주셔서 감사합니다! –

1

R 데이터 유형의 즐거움.

R의 행렬에는 twp 특수 속성이 있습니다. 모든 열은 동일한 길이 여야하며 모든 요소는 동일한 데이터 유형을 가져야합니다. 따라서 행렬 또는 행렬을 가질 수 있지만 행렬을 둘 다 가질 수는 없습니다.

이제 데이터 프레임이 df이고 두 열이 AB 인 것으로 가정 해 보겠습니다. A에는 문자가 있고 B에는 숫자가 있습니다. 이것은 데이터 프레임에 적합합니다. 그러나 지금 당신이 할 : @Sven으로

m <- as.matrix(df) 

아래 지적, 행렬의 결과 데이터 유형은 가장 일반적인 하나 (문자> 숫자> 정수> 논리적)을 기반으로합니다. R은 다른 모든 데이터 형식을 m에 강제 변환합니다. 그리고 당신에게 경고하지 않을 것입니다 (가능한 강요가 NA's을 생성하지 않는 한).

+3

결과 행렬의 데이터 유형은 첫 번째 데이터 유형을 기반으로하지는 않지만 가장 일반적인 데이터 유형 (문자> 숫자> 정수> 논리)을 기반으로합니다. –

+1

@SvenHohenstein - 감사합니다. 나는 내 대답을 편집했다. – jlhoward