2.1 R에서 어떻게 코딩하나요?

이제 R 및 RStudio를 설정했으므로 “좋아요. 이제 R을 어떻게 사용합니까?” 가장 먼저 주목해야 할 점은 포인트 앤 클릭 인터페이스 를 제공하는 Excel, SPSS 또는 Minitab과 같은 다른 통계 소프트웨어 프로그램과 달리, R은 해석 언어라는 것입니다. 즉, R 코드로 작성된 명령을 입력해야합니다 . 즉, R로 코딩 / 프로그래밍해야 합니다.이 책에서는 “코딩”과 “프로그래밍”이라는 용어를 같은 의미로 사용합니다.

R을 사용하기 위해 노련한 코더 / 컴퓨터 프로그래머일 필요는 없지만 새로운 R 사용자가 이해해야 하는 기본 프로그래밍 개념은 여전히 있습니다. 따라서 이 책은 프로그래밍에 관한 책은 아니지만 데이터를 효과적으로 탐색하고 분석하는 데 필요한 이러한 기본 프로그래밍 개념을 충분히 배울 수 있습니다.

2.1.1 기본 프로그래밍 개념 및 용어

이제 몇 가지 기본 프로그래밍 개념과 용어를 소개합니다. 지금 당장 이 모든 개념과 용어를 외워달라고 요청하는 대신 “행동을 통해 학습”할 수 있도록 안내해 드립니다. 학습을 돕기 위해 일반 텍스트와 컴퓨터 코드항상(가능하면) 다른 글꼴을 사용하겠습니다. 그리고 다음과 같은 주제를 마스터하는 가장 좋은 방법은 R과 많은 반복을 통해 의도적으로 연습하는 것입니다.

  • 기초:

    • 콘솔 창 : 명령을 입력하는 곳.
    • 실행 코드 : R에게 콘솔에서 명령을 내어 행동을 수행하도록 지시하는 행위.
    • 개체(Objects) : R에서 값이 저장되는 곳. 개체에 값을 할당 하는 방법과 객체의 내용을 표시하는 방법을 보여줍니다.
    • 데이터 유형 : 정수, 이중(double) / 숫자, 논리 및 문자. 정수는 -1, 0, 2, 4092와 같은 값입니다. Double 또는 숫자는 정수뿐만 아니라 -24.932 및 0.8과 같은 소수 및 소수 값도 포함하는 더 큰 값 집합입니다. TRUE또는 FALSE문자는 논리값 중 하나입니다 “양배추,” “해밀턴,” “철사 가장 큰 TV 쇼 있나이다,” 그리고 “이라면이 맛있습니다.” 등의 문자는 종종 주위에 따옴표로 표시됩니다.
  • 벡터(vector) : 일련의 값. 이들은 “결합”또는 “연결”을 의미 하는 c()함수를 사용하여 생성됩니다. 예를 들어 c(6, 11, 13, 31, 90, 92)는 양의 정수 값으로 구성된 6 개 요소의 시리즈를 만듭니다.

  • factor(요인) : 범주형 데이터 는 일반적으로 R에서 요인으로 표시됩니다. 범주형 데이터는 문자열로도 나타낼 수 있습니다 . 우리는 앞으로 문자열과 요인의 차이를 알게될 것입니다.

  • 데이터 프레임 : 직사각형 스프레드시트. 관측치에 해당하고 이 관측치를 설명하는 변수에 해당하는 R의 데이터 세트 표현입니다 . 데이터 프레임은 나중에 제2부의 7장에서 다룰 것 입니다.

  • 조건부 사용

    • ‘같음’에 대한 테스트 ==(그리고 =일반적으로 할당을 위해 사용되는). 예를 들어, 2 + 1 == 3비교. R 코드 2 + 1 = 3는 에러를 반환한다.
    • 부울 연산자 (비교 연산자) : TRUE/FALSE와 같은 수학 연산자 <(미만) <=(이하) 및 !=(같지 않음). 예를 들어 4 + 2 >= 3TRUE를 반환하지만, 3 + 5 <= 1FALSE를 반환합니다.
  • 논리 연산자 : &(and)와 |(or) 를 나타냅니다. 예를 들어 (2 + 1 == 3) & (2 + 1 == 4) (첫 번째 절만 같으므로) FALSE를 반환합니다. 반면에, (2 + 1 == 3) | (2 + 1 == 4)TRUE를 반환합니다.

  • ‘함수’ 라고도 하는 명령 : 함수는 R에서 작업을 수행하기 위해 인수를 입력받아 출력을 반환합니다. 이때, 함수는 인수를 수동으로 지정하거나 함수의 기본값을 사용할 수 있습니다 .

    • 예를 들어, R 의 함수 seq() 는 일련의 숫자를 생성합니다. 그냥 실행 seq()하면 값 1이 반환됩니다. 그다지 유용하지 않은 것 같습니다! 기본 인수로 설정되어 있기 때문 seq(from = 1, to = 1)입니다. 당신이 다른 값을 전달하지 않는 경우 인수의 기본값은 1로 정해져 있기 때문입니다. 만일 seq(from = 2, to = 5)와 같이 인수 값을 지정하는 경우 그 결과로 2 3 4 5를 얻을 수 있습니다.
  • 이 책 전체에서 함수에 대해 많이 작업 할 것이며 그 동작을 이해하는 데 많은 연습을 하게 될 것입니다. 책에서 함수가 언제 언급되는지 이해하는 데 더 도움이되도록 위에서 언급한 seq() 함수도 뒤에서 살펴 볼 것입니다.

2.1.2 오류, 경고 및 메시지

새로운 R 및 RStudio 사용자를 위협하는 한 가지는 오류 , 경고메시지를 보고하는 방법 입니다. R은 눈부신 빨간색 글꼴로 오류, 경고 및 메시지를 보고하므로 꾸짖는 것처럼 보입니다. 그러나 콘솔에 빨간색 텍스트가 표시되는 것이 항상 나쁜 것은 아닙니다.

R은 세 가지 다른 상황에서 콘솔 창에 빨간색 텍스트를 표시합니다.

  • 오류 : 빨간색 텍스트가 합법적인 오류 인 경우 “Error in…”으로 시작하고 무엇이 잘못되었는지 설명하려고 합니다. 일반적으로 오류가 발생하면 코드가 실행되지 않습니다. 예를 들어, Error in ggplot(...) : could not find function "ggplot"를 볼 수 있다면 “ggplot 함수가 포함된 패키지가 로드되지 않았기 때문에 함수에 액세스 할 수 없음”을 의미합니다 . 따라서 ggplot2 패키지를 library(ggplot2)로 먼저 로드하지 않으면 함수를 사용할 수 없습니다.
  • 경고 : 빨간색 텍스트가 경고인 경우 “Warning :”으로 시작되고 R은 경고가있는 이유를 설명하려고합니다. 일반적으로 코드는 여전히 작동하지만 몇 가지주의 사항이 있습니다. 예를 들어 데이터 행 중 두 개에 산점도에서 포인트를 생성하는 데 필요한 누락된 항목이있는 데이터 세트를 기반으로 산점도를 생성하는 경우 Warning: Removed 2 rows containing missing values (geom_point)의 경고가 표시됩니다.. R은 나머지 비결측값이 모두 포함된 산점도를 생성하지만 두 점이 존재하지 않는다는 경고를 표시하는 것입니다.
  • 메시지 : 빨간색 텍스트가 ‘오류’ 또는 ’경고’로 시작하지 않으면 친근한 메시지 일뿐 입니다. R 패키지 를 로드하거나 read_csv() 함수를 사용하여 스프레드 시트 파일에 저장된 데이터를 읽을 때 이러한 메시지가 표시됩니다 . 이는 유용한 진단 메시지이며 코드 작동을 중단하지 않습니다. 또한 install.packages()를 이용하여 패키지를 설치할 때에도 이러한 메시지가 표시됩니다 .

콘솔에 빨간색 텍스트가 표시 될 때 당황하지 마십시오. 반드시 잘못된 것이 있다는 의미는 아닙니다.

  • 텍스트가 “오류”로 시작하면 원인을 파악하십시오. 오류를 빨간색 신호등으로 생각하십시오. 뭔가 잘못되었습니다!
  • 텍스트가 “경고”로 시작하는 경우 걱정할 사항이 있는지 확인하십시오. 예를 들어 산점도에서 누락된 값에 대한 경고를 받고 누락된 값이 있음을 알고 있다면 괜찮습니다. 그게 놀랍다면 데이터를 보고 무엇이 누락되었는지 확인하십시오. 경고를 노란색 신호등으로 생각하십시오. 모든 것이 잘 작동하지만 주의를 기울이십시오.
  • 그렇지 않으면 텍스트는 메시지일 뿐입니다. 그것을 읽고, R에게 손을 흔들고, 당신과 이야기해주셔서 감사합니다. 메시지를 녹색 신호등으로 생각하십시오. 모든 것이 잘 작동하며 계속 진행됩니다!

2.1.3 코딩 학습 팁

코딩/프로그래밍을 배우는 것은 외국어를 배우는 것과 매우 유사합니다. 처음에는 힘들고 실망 스러울 수 있습니다. 이러한 좌절감은 흔하며 배우면서 낙담하는 것은 정상입니다. 그러나 외국어를 배우는 것과 마찬가지로 노력을 기울이고 실수를 두려워하지 않으면 누구나 배우고 향상 할 수 있습니다.

다음은 프로그래밍을 배울 때 기억해야 할 몇 가지 유용한 팁입니다.

  • 컴퓨터가 실제로 그렇게 똑똑하지 않다는 것을 기억하십시오. 컴퓨터나 스마트 폰이 “스마트”하다고 생각할 수 있지만 실제로 사람들은 “스마트”하게 보이도록 설계하는 데 많은 시간과 에너지를 소비했습니다. 실제로는 컴퓨터가 해야 할 모든 것을 말해야합니다. 또한 컴퓨터에 제공하는 지침에는 오류가 있을 수 없으며 어떤 식으로든 모호함이 없이 명확해야 합니다.
  • “복사, 붙여 넣기 및 수정”접근 방식을 사용하십시오 . 특히 첫 번째 프로그래밍 언어를 배우거나 특히 복잡한 코드를 이해해야 할 때 작동하는 기존 코드를 사용하여 목적에 맞게 수정하는 것이 훨씬 쉽습니다. 이것은 처음부터 코드를 입력하려는 것과 반대입니다. 이를 “복사, 붙여 넣기 및 수정”이라고합니다. 따라서 처음에는 메모리에서 코드를 작성하지 말고 우리가 제공한 기존 예제를 선택한 다음 목표에 맞게 복사, 붙여 넣기 및 수정을 하는 것이 좋습니다. 더 자신감을 느끼기 시작한 후에는 천천히이 접근 방식에서 벗어나 처음부터 코드를 작성할 수 있습니다. “복사, 붙여 넣기 및 수정” 접근 방식을 자전거 타기를 배우는 어린이를 위한 훈련용 바퀴로 생각하십시오. 편안 해지면 더 이상 필요하지 않습니다.
  • 코딩을 배우는 가장 좋은 방법은 다음을 수행하는 것입니다. 코딩 자체를 배우는 것보다 목표를 염두에 두고 있거나 데이터 분석과 같은 특정 프로젝트에서 작업할 때 코딩을 배우는 것이 훨씬 더 원활 해집니다. 당신이 관심이 있고 그것은 당신에게 중요합니다.
  • 연습이 중요합니다. 외국어 실력을 향상시키는 유일한 방법은 많은 연습과 말하기를 통하는 것처럼 코딩 실력을 향상시키는 유일한 방법은 많은 연습을 통해서입니다. 그러나 걱정하지 마십시오. 그렇게 할 수있는 많은 기회가 주어집니다!