자주 벡터의 길이, 데이터 프레임의 행 수 또는 행렬의 크기를 테스트 할 때 R 코드를 작성합니다 (예 : if (length(myVector) == 1)
). 일부 기본 R 코드를 훑어 보면서, 그러한 비교 값에서 명시 적으로 정수로 명시되며 대체로 'L'접미사를 사용합니다 (예 : if (nrow(data.frame) == 5L)
). 명시 적 정수는 함수 인수에 사용되기도합니다. 예를 들어 cor
함수의 이러한 문은 x <- matrix(x, ncol = 1L)
및 apply(u, 2L, rank, na.last = "keep")
입니다. 정수는 언제 R에 명시 적으로 지정해야합니까? 정수를 지정하지 않아서 잠재적으로 부정적인 결과가 있습니까? 1L
등을 사용하여언제 정수를 명시해야합니까?
답변
그것이 무엇을 의미하는지에 관해서는 명시 적입니다 같이 프로그래밍 안전, 및 변환 등에 의존하지 않는
대화 형으로 코드를 작성하는 경우,이 오류를 발견하고 함께 해결하기 위해 쉽게 할 수있다 그런데 패키지를 작성하는 경우 (심지어 기본이 R
) 명시적인 것이 더 안전합니다.
평등을 고려할 때 부동 소수점 숫자를 사용하면 정밀도 문제가 발생합니다. See this FAQ.
정수를 명시 적으로 지정하면 nrow
및 length
으로, 인덱스 인수는 apply
으로 반환하거나 정수가 필요합니다.
당신은 질문 :
이 정수를 지정하지 않는에서 어떤 잠재적으로 부정적인 결과가 있습니까?
상황이 더 중요 할 수 있습니다. 데이터 분석 p193 용 챔버 소프트웨어에서 : 정수의 절대 값 미만 2^m, 소수의 길이로
정수 값 정확하게 오랫동안 "더블"숫자로 표현 될 표현의 일부 (32 비트 시스템의 경우 2^54). 그러나
> (seq(-.45,.45,.15)*100)[3] [1] -15 > (seq(-.45,.45,.15)*100)[3] == -15L [1] FALSE
이 명시 적으로 입력의 예를 가지고 올 어렵습니다 :
그것은 당신이 값을 계산하는 경우는 정수처럼 보이지만 꽤 하나가 될 수있는 방법을 볼 어렵지 않다 정수이고 부동 소수점 표현에 정수가 아닙니다. Chambers가 설명하는 더 큰 값을 얻을 때까지.
"32 비트 컴퓨터의 경우"그가 64 비트 더블에 대해 쓰고 있다고 생각하는 이유가 확실하지 않습니다. –
32 비트 머신 (예 : 2 개의 32 비트 메모리 위치)에서 64 비트를 두 배로 사용하지 않습니까? –
실제로 그들은 그렇습니다. 64 비트 컴퓨터에서도 64 비트를 사용합니다. –
- 1. 정수를
- 2. Zope Component Architecture 구성 요소가 구현하는 인터페이스를 명시해야합니까?
- 3. PHP는 선택된 정수를 기준으로 정수를 정렬합니다.
- 4. 언제 예상하고 언제 스텁을합니까?
- 5. 언제
- 6. 언제
- 7. 언제
- 8. System.out.printIn()에서 정수를 허용하는 방법은 무엇입니까?
- 9. 언제 스레드하고 언제 WAR로 보낼까요?
- 10. PropertyChangedEventManager는 언제 만들어지며 언제 첨부됩니까?
- 11. 자동 증가 기본 키는 언제 사용합니까?
- 12. 날짜 사이의 정수를 얻으십시오
- 13. 함수에서 정수를 반환하는 방법
- 14. 소수와 정수를 가진 PHP
- 15. 레일스 정수를 부울로 평가
- 16. 정렬 된 정수를 압축
- 17. 단일 정수를 NSdefaults에 저장
- 18. Qt에서 정수를 보내십시오
- 19. 정수를 시간 형식으로 변환
- 20. 계수 분수는 정수를 반환합니까?
- 21. 문자열과 정수를 PHP에 추가하기
- 22. 정수를 나눠서 정수로 추가해야합니다.
- 23. 정수를 지원하는 listadapter 만들기
- 24. 셸 스크립트에서 정수를 반올림하십시오.
- 25. 정수를 사용자 이름에 매핑하기
- 26. BeanUtils.copyProperties 정수를 null로 변환합니다.
- 27. Ada95 : 정수를 문자로 변환
- 28. 정수를 저장하는 NSMutableArray
- 29. 정수를 정수로 정렬 하시겠습니까?
- 30. 정수를 바이트 문자열로 변환합니다.
http://stackoverflow.com/q/7014387/602276과 매우 유사하며 질문에 대한 답변에 대해 espcially 대답을 참조하십시오. – Andrie
@ Andrie- 질문과 답변을 지적 해 주셔서 감사합니다. 처음 검색 할 때 왜 나타나지 않았는지 알지 못합니다. – pistachionut