2013-03-02 2 views
0

숫자가있는 3D 행렬이 있지만 R은 숫자 데이터를 문자 그대로 취급합니다. 로드하는 파일은 숫자 벡터입니다. 하지만 3D 벡터에 넣어 일단 모든 데이터 번호는 다음과 같이 "문자"로 표시됩니다 :스위치 요소 유형을 문자에서 숫자로 변경 하시겠습니까?

 [,1] [,2] [,3] [,4] [,5] [,6] 
    [1,] "3.79" "3.79" "2.33" "2.33" "2.79" "2.79" 
    [2,] "3.79" "3.79" "2.33" "2.33" "2.79" "2.79" 
    [3,] "3.02" "3.02" "4.94" "4.94" "4.33" "4.33" 
    [4,] "3.02" "3.02" "4.94" "4.94" "4.33" "4.33" 
    [5,] "4.25" "4.25" "4.06" "4.06" "4.98" "4.98" 
    [6,] "4.25" "4.25" "4.06" "4.06" "4.98" "4.98" 
    [7,] "4.25" "4.25" "4.06" "4.06" "4.98" "4.98" 
    [8,] "2.07" "2.07" "2.09" "2.09" "2.92" "2.92" 

하지만 3D 매트릭스에 넣어 전에, 데이터는 다음과 같이 보여줍니다

[39965] 3.68230769 3.68230769 3.68230769 2.96454545 
[39969] 2.96454545 3.93600000 3.93600000 3.93600000 
[39973] 3.67769231 3.67769231 3.67769231 5.12750000 
[39977] 5.12750000 5.12750000 3.05083333 3.05083333 
[39981] 3.05083333 1.94166667 1.94166667 1.69000000 
[39985] 1.69000000 1.69000000 2.01769231 2.01769231 
[39989] 2.01769231 3.05692308 3.05692308 3.05692308 
[39993] 3.72916667 3.72916667 3.72916667 2.65454545 
[39997] 2.65454545 2.45583333 2.45583333 2.45583333 

여기에있다 내 코드 :

이 문제를 해결하기 위해 일부 코딩을 추가 할 수 있으므로 모든 3D 매트릭스 요소가 숫자가 아닌 숫자입니다.

+2

'as.numeric()'은 숫자로 변환합니다. 처음에 문자로 변환되었을 때 제공 한 코드에서 알기가 어렵습니다. – Gregor

+0

@shujaa 정답입니다. 숫자가 아닌 문자 (또는 ".")를 가지고 있다면 쓰레기를 regex하거나'taRifx :: destring'을 사용해야 할 수도 있습니다. –

+0

'prep_data '가 어디에서 왔는지는 알려주지 않았지만 문자 배열이므로 변환되었습니다. –

답변

1

사용 as.numeric 뭔가를 변환 숫자로. 일반적으로 as.class은 해당 클래스 (숫자, 문자, 요소, 날짜, data.frame, 행렬 등)로 변환됩니다.

0

colClasses 인수를 사용하여 입력 데이터를 특정 클래스로 강제 변환 할 수 있습니다. 아래의 코드는 숫자가 아닌 항목을 발견하면 경고를 생성 코드에서 read.csv 전화를 대체 할 수 있지만 좋은 데이터는 숫자로 보장됩니다

precip <- read.csv(precipitation[i], colClasses="numeric") 
+0

그러나 코드를 사용하기 전에 데이터가 숫자입니다. prep_data [,, i] <- matrix (precip3, ncol = 200, nrow = 200). 그러나이 부분이 실행 된 후에는 문자가됩니다. 내가 할 수있는 일을 아십니까? –

+0

코드를 입력하면 오류가 발생합니다. scan 오류 (파일, 내용, nmax, sep, dec, quote, skip, nlines, na.strings, : scan()가 ' 1 " ' –

+0

처음 몇 줄을 텍스트 편집기에 게시 할 때 입력 인수를 올바르게 설정할 수 있습니다. –

관련 문제