2013-03-28 1 views
0
input a 
88888888 
99999999 
end 
export excel a.xlsx, replace 

그런 다음 Excel 파일을 열면 숫자는 8.89e + 07 및 1.00e + 08로 표시됩니다. 어떻게 원래의 숫자로 복원 할 수 있습니까? Excel에서이 작업을 수행해야합니까? Stata가 그 숫자를 "과학적"형식으로 변환하는 것을 막을 수있는 방법이 있습니까?Stata : 변수 유형 (8 자리 숫자)

+2

그냥 분명히 묻고 있지만, 숫자가 아니라는 것이 확실합니까? Excel의 형식 변경? –

+0

이것이 Stata의 문제라고 생각합니다. Stata의 99999999는 Excel에서 1.00E + 08로 내보내집니다. –

답변

2

input 명령의 효과는 해당 숫자를 float 유형의 변수로 읽는 것입니다. 그러나에는 99999999를 정확하게 유지하는 비트가 충분하지 않습니다. 이것은 잘 문서화되어있다.

data types에 대한 도움말 :

"float의 정확도의 약 7 자리 숫자, 숫자의 크기가 중요하지 않습니다 따라서, 1234567 + 20 1234567e 수있는 번호 123456789를하지만, float로 완벽하게 저장 될 수 있습니다.. 일반적으로이 반올림, 123456792.로 반올림 될 문제가되지 않습니다. 당신이 식별 번호를 저장하는 경우

는 반올림 중요 할 수있다. 식별 번호는 정수이며 long로를 9 자리 이하의 숫자을 저장하는 경우 s가 아니면 인 경우 double.double의 16 자리 정확도를 저장하십시오. "

따라서 부적절한 데이터 형식을 사용하여 데이터의 성능을 저하 시켰습니다. 그것이 export excel이 아니라 문제입니다.

+0

고마워, 닉. 이 문제는 다음과 같이 수정했습니다. .recast double a.format % 11.0g a .recode a (100000000 = 99999999) –

+0

문제를 해결해 주셔서 감사하지만 미래에는 '재배치 이중화'가 손실 된 비트를 복원하지 않습니다. 당신은 처음부터 적절한 데이터 유형을 사용해야합니다. –