가끔 사용하는 언어 중에 R은 인덱스가 1부터 시작합니다
페이지 정보
본문
대부분의 언어들은 0부터 시작하는 인덱스를 갖는데
R은 특이하게 1부터 시작합니다
다른 언어 중에서 1로 시작하는 다른 언어가 또 있는지 잘 모르겠습니다만
아무튼 아무런 생각없이 R은 1부터, 파이썬은 0부터 이렇게 쓰고 있었는데
오늘 그 이유를 chatGPT에 물어봤습니다
R 언어의 인덱스가 1부터 시작하는 이유는 주로 역사적 및 설계 결정에서 비롯됩니다. 몇 가지 주요 이유는 다음과 같습니다:
역사적 이유: R은 S 언어에서 파생되었습니다. S 언어는 벨 연구소에서 개발된 통계 컴퓨팅 언어로, 그 설계 당시에도 인덱스를 1부터 시작하는 것이 일반적이었습니다. S 언어가 영향을 받은 여러 프로그래밍 언어들, 특히 포트란(Fortran)도 인덱스를 1부터 시작했습니다. R이 S 언어를 계승했기 때문에 이 설계를 그대로 따르게 되었습니다.
수학적 및 통계적 관습: 수학과 통계학에서 벡터, 행렬 등의 인덱싱은 1부터 시작하는 것이 일반적입니다. 예를 들어, 행렬의 첫 번째 행과 열을 (1,1)로 표시하는 것이 보편적입니다. R은 주로 통계학자와 데이터 분석가를 위한 도구로 설계되었기 때문에 이러한 수학적 관습을 따르는 것이 자연스러웠습니다.
사용자 친화성: 많은 사용자에게 인덱스를 1부터 시작하는 것이 직관적입니다. 일반적인 대중의 사고방식에서는 "첫 번째" 항목을 1로 인식하기 때문에, 프로그래밍에서도 이 방식을 따르는 것이 논리적일 수 있습니다.
R의 사용자층: R의 주요 사용자층은 통계학자, 데이터 분석가 및 과학자들입니다. 이들은 대부분 인덱스를 1부터 시작하는 수학적, 통계적 배경을 가지고 있습니다. 따라서 R의 설계자들은 이러한 사용자층의 익숙함과 편리함을 고려하여 인덱스를 1부터 시작하도록 설계했습니다.
결론적으로, R 언어의 인덱스가 1부터 시작하는 이유는 역사적 배경, 수학적 전통, 사용자 친화성 및 주요 사용자층의 요구를 반영한 결과입니다.
chatGPT가 이런 이유 때문이라고 합니다~
참 똑똑한 넘이네요 ^^
mechest님의 댓글
세꼬시님의 댓글
인덱스가 0부터 시작하는건 아마 포인터 개념에서 비롯된게 아닌가 짐작합니다.
지하철승객님의 댓글
성능을 따진다면 0부터, 일상생활에 밀접한 표현이 중요하다면 1부터 시작한다고 보면 될듯?
결국 관습과 사용자 친화적인 부분이 핵심이겠죠.
가로세로 w개씩 100칸이 있는 2차원 배열 a에서 (x, y)에 있는 값을 1차원 메모리에서 가져오려면
0부터 시작하면 &a + x*w + y 로 비교적 간단히 계산하면 되지만
1부터 시작하면 &a + (x-1)*w + (y-1) 과 같이 추가적인 연산이 더 들어가서 0부터 시작하는 게 성능은 더 좋습니다.
민구니님의 댓글