컴퓨터 실에서 R을 가르치는 좋은 방법은 무엇입니까?


15

이 몇 가지 좋은 질문과 소개 책에 대한 답변 세트되고 또는 R의 예를 학습에 접근 한 여기여기 . 그러나 약간 다른 문제가 있습니다. 컴퓨터 실습실에서 한 시간 동안 세션을 실행하는 가장 좋은 방법은 사람들이 R에서 시작하여 기본적인 접근 방식에 익숙해 지도록하는 가장 좋은 방법입니다.

나의 현재 계획은 Verzani의 SimpleR과 같은 소개 장을 효과적으로 수행 한 다음 익숙한 데이터 세트를 소개하는 것이지만 사람들이 유용하다고 생각한 다른 접근법이 있습니까? 예를 들어, 실제 데이터를 바로 도입하거나보다 추상적 인 방식으로 문제를 해결하는 것이 좋습니까? 대괄호를 사용하는 방법을 철저히 살펴 보거나 격자 그래픽의 예를 가진 사람들을 자극해야합니까?

목표 대상은 통계 (전문가는 아니지만) 및 유능한 SPSS 사용자에게 익숙합니다. SPSS 및 이와 유사한 것들에서 얻을 수있는 매크로 및 스크립팅 이상의 프로그래밍 언어에 익숙하지 않습니다.

수업 계획에 대한 팁이나 참고 사항이 있으면 감사하겠습니다. 그러나 저는 R을 소개하는 많은 훌륭한 온라인 자료 목록을 복제하고 싶지 않습니다.


아마도 커뮤니티 위키 여야합니까?
피터 엘리스

1
나에게 좋은 생각 인 것 같습니다. :)
Michelle

1
이 질문에 어떻게 대답해야하는지 결정하는 것은 설정이 무엇인지에 달려 있습니다. 당신이있는 경우 하나의 "시간의 긴 세션 ... 컴퓨터 실험실을"이 될 것입니다 매우 작은 당신이 할 수있는 그리고 당신은 거의 변환을해야합니다. "여러 개"가 있고 통계와 기본 프로그래밍을 상당히 철저히 알고있는 경우 펌프를 프라이밍하여 자체적으로 전진하고 시도하는 데 열중 할 수는 있지만 다른 방법이 필요합니다. 통계가 있고 프로그래밍 지식이 없는 사람들 에게는 한 학기의 과정이 이상적입니다.
gung-복직 모니카

흠, 좋은 점 @ gung, 좋아, 설정은 매우 구체적입니다. 나는 그들의 매니저이고 그렇게 할 수 단지 무엇을 그들에게 말해. 우리는 통계 기술에 대한 격주로 1 시간 동안 세션을 진행하고 있으며 (실제로 우리 중 몇 명이 발표를합니다) 실용성이 높아지고 실험실에서 실제 데이터가있는 머신의 많은 부분을 처리하기로 합의했습니다. 따라서 실제 요구 사항은 회귀 모델을 피팅하거나 후속 세션에서 진단 플롯을 볼 때 기본 사항에 완전히 산만하지 않을 한두 번의 세션에서 R에 충분히 익숙해 지도록 지정해야합니다.
피터 엘리스

2
@gung 당신의 철저한 의견에 큰 +1. 나는 오랫동안 R을 가르쳐 왔으며 마침내 비슷한 결론에 도달했습니다. 프로그래밍이나 명령 프롬프트에 대한 간단한 이해가없는 사람들은 R을 다루는 데 어려움을 겪을 것입니다. 학생들을 친숙하게 만들어야 할 때 악화됩니다 몇 시간 만에 R을 사용하는 통계 ...
chl

답변:


7

나는 완전히 다른 접근법을 주장합니다. 두 가지 다른 관점에서 배운 R 튜토리얼을 보았습니다. 사용자에게 R의 기본 개념을 소개하는 빌딩 블록 접근법과 사용자에게 R의 놀라운 기능을 보여 주지만 충격을주는 경감 접근법 어떤 일을하는 방법에 대한 이해가 상대적으로 적습니다. 후자는 확실히 동공들에게 더 강하게 공명하지만, 실제로 사용자를 생성하는 데 어느 쪽도 효과적이지 않습니다.

대신, 나는 SPSS에서 일반적이고 비교적 간단한 작업을 수행하고 그것을 약간의 순진한 태도로 R로 변환하는 과정을 밟을 것입니다. 예를 들어 서안의 훌륭한 제안에 따라 원하는 기능을 찾는 ??것이 아니라 메모리에서 올바른 기능을 호출합니다. 초보자는 R을 배우면서 처음부터 작성하지 않고 기존 프로세스를 거의 확실히 변환 할 것입니다. 그래서 어떻게 진행하는지 정확하게 보여주지 않겠습니까?

좋은 예는 데이터를로드하고 설명을 수행하고 일부 기본 플롯을 표시하는 것입니다. lm()매우 간단하고 이해하기 쉽고 SPSS 출력과 비교할 수있는 결과를 생성하므로 다루기에도 좋습니다.

숙제를하려면 간단한 프로세스 중 하나를 변환하거나 매우 친숙한 데이터 세트를로드하고 탐색 할 수 있습니다. 문제가 발생한 위치를 파악하기 위해 일대일로 시간을주고 다음 세션의 사례를 더 많은 전환 사례로 다루십시오. 목록의 개념은 필연적으로 나올 것입니다 (내기 : 요인 대 문자 벡터, 적용 대)-그러면 당신은 그것들을 다루는 실제 동기를 갖게 될 것입니다. 그들이 나오지 않으면 ( attach), 아직 필요하지 않습니다. 초보자가 ( for대신 대신 apply) 초기에 약간의 비이 디오 틱 코드를 ​​작성한다는 것을 의미한다면 , 나는 해를 보지 않습니다.

이런 방식으로 학생들은 외국어 학생들이하는 것과 거의 같은 방식으로 (또는 적어도 내가 한 것처럼) 발전 할 수 있습니다. 간단한 표현의 조잡한 번역은보다 복잡한 표현에 대한 욕구를 불러 일으켜 문법에 대한 깊은 이해를 원합니다. 결국 관용 표현으로 이어집니다. "문법"으로 너무 빨리 뛰어 들지 말고 그들이 묻지 않은 것을 가르치는 것에 대해 너무 걱정하지 마십시오. 어쨌든 잊어 버릴 수 있기 때문입니다. 관용 표현에 대한 부드러운 포인터는 훌륭 하지만 ( forvs apply) 가장 중요한 것은 출력을 생성하고 스스로 탐구하는 것입니다.


(+1) 고마워, 매트, 그것은 훌륭한 조언처럼 들립니다. 나는 특히 마지막 두 단락을 좋아한다.
chl

고마워 매트 (그리고 다른 모든 사람들-모든 훌륭한 도움). 나는 확실히 사용할거야 ?? 다른 소프트웨어 (SPSS 및 Harmoni, 기본적으로 크로스 탭 패키지)를 사용하여 실험실에서 작업을 수행하고 일반적인 작업으로 숙제를 재현합니다. 나는 그들이 일을 시작하고 어디에서 시작 할지를 알기 위해 합리적 지시가 여전히 필요하지만 (실습 1 계획을 적절하게 수정했습니다) 실험실 밖에서 자기 학습 동기 부여가 분명히 길이라고 생각합니다.
Peter Ellis

7

자, 지금까지 사람들이 시작하게 만들고 더 많은 것을 배우도록 동기를 부여하는 것에 대한 내 자신의 대답은 다음과 같습니다. 내가 거부하는 더 많은 모듈을 구입하지 않고).

첫 번째 세션 이 끝나면 다음을 수행 할 수 있어야합니다.

기초

  • 인터페이스를 사용하여 간단한 계산 수행 (R을 계산기로 사용)
  • 스크립트 창을 시작, 저장 및로드하여 효율적으로 사용
  • 작업 공간에서 객체 생성 및 제거
  • 어떤 폴더가 작업 폴더인지 확인
  • P : / R / yourid 폴더의 작동 방식 및 종료시 작업 공간 저장이 수행하는 작업 이해
  • XXX (일반적으로 사용되는 데이터)를 포함하여 작업 공간의 이미지로드
  • 메모리에 객체를 나열
  • 데이터 프레임에 열 (변수)의 이름을 나열합니다.
  • 화면에 개체를 인쇄
  • 데이터 프레임 연결 및 분리
  • 의미, 객체, 함수, 인수 (함수에 대한), 작업 공간, 벡터, 데이터 프레임, 행렬, 숫자, 인자
  • 함수에 대한 도움말을 찾는 방법을 알고 있어야합니다.
  • 사용하다 ?? 관련 기능 목록을 찾기 위해
  • 추가 자료를 위해 웹과 지역 서적 및 LAN을 방문하는 곳
  • 특정 통계 기술에 대한 실습 세션에 참여하기에 충분한 R 기본 사항 이해

데이터 조작

  • : 연산자를 사용하여 숫자로 구성된 벡터 만들기
  • 하나의 변수에 대한 카운트 테이블을 수행
  • 두 변수에 대한 교차 계산을 수행하십시오.
  • 추가 조작을 위해 새 객체 (예 : 위의 표 중 하나)를 만듭니다.
  • 행렬 또는 테이블 전치
  • tapply ()를 사용하여 인수로 연속 변수의 평균으로 구성된 벡터 만들기
  • cbind () 또는 data.frame ()을 사용하여 여러 벡터를 함께 바인딩
  • []를 사용하여 행렬의 부분 집합을 만듭니다.
  • 대수 또는 제곱근과 같은 간단한 변형을 만듭니다.

통계

  • 두 연속 변수의 상관 관계 계산

제도법

  • 연속 변수의 히스토그램 생성
  • 그래픽 창을 만들어 2 개 또는 4 개의 부분으로 나눕니다.
  • 연속 변수의 밀도 선 그림 만들기
  • 두 개의 연속 변수로 구성된 산점도 생성
  • 산점도에 수직선 추가 (수직, 수평 또는 ab)
  • 축과 제목에 대한 레이블 만들기

세 번의 세션 이 끝나고 그 사이에 다양한 운동을하면 다음을 수행 할 수 있어야합니다.

기초

  • SPSS 또는 .csv 형식으로 데이터 가져 오기
  • 작업 공간에서 모든 객체를 제거하여 새로 시작
  • 패키지 라이브러리를 사용
  • 작업 공간 이미지 저장 및 기본 원리 R 및 메모리 이해
  • 랜덤 변수 생성
  • c ()를 사용하여 벡터 만들기
  • 새로운 방법과 기술을 배우기 위해 어디로 가야할지 좋은 느낌을 가지십시오

데이터 조작

  • 실제 데이터 세트에 대해 집계 ()를 사용하십시오 (예 : 월 및 국가 별 방문자 도착 수)
  • ==,! = 및 % in % 연산자; 논리 벡터; 데이터를 서브셋으로 사용
  • ifelse () 및이를 사용하여 새 변수 작성
  • 최대, 최소 및 유사한 함수와 벡터와의 작동 방식
  • 수많은 결과를 저장할 벡터 또는 행렬 만들기
  • 루프를 사용하여 유사한 기능을 여러 번 반복하십시오
  • apply ()를 사용하여 행렬의 각 열 또는 행에 함수를 적용하십시오.
  • 정렬 된 요인 생성
  • cut ()을 사용하여 숫자 변수를 코딩

통계

  • 분할 표에 대한 카이 제곱 검정
  • 강력한 버전의 상관 관계
  • 선형 모델을 두 개의 연속 변수에 맞추고 결과를 객체에 배치하고 anova (), summary () 및 plot ()을 사용하여 결과를 봅니다.
  • 다양한 모델 유형에 기술을 적용 할 수 있도록 모델 및 R에서의 작동 방식에 대해 충분히 이해
  • boot ()를 사용하여 cor (), mean () 또는 var ()와 같은 기본 함수에서 부트 스트랩을 수행하십시오.
  • 실제 데이터 세트에서 sample () 사용

제도법

  • 다른 수준의 요인이 주어진 연속 변수의 격자 밀도 선 그림을 만듭니다.
  • qqnorm
  • 다른 수준의 요인을 보여주는 다른 색상과 문자 점으로 산점도를 작성하십시오. 기존 산점도에 점 또는 선 추가
  • 전설을 추가
  • 도트 차트
  • errbar ()
  • 루프를 사용하여 한 페이지에 여러 차트 그리기

2
당신의 설정을 감안할 때,이 합리적인 것 같지만입니다 많은 초보자와 시간에 커버를. 나는 자급 자족을 구축 할 수있는 자원을 지속적으로 강조하고 싶습니다. 특히, 도움말 파일의 설치 및 사용과 함께 제공되는 R 설명서를 살펴보십시오. 예를 들어 상관 관계로 시작하려면 상관 관계를 시작하려면 목록을 검색하는 방법을 보여준 다음? cor를 사용하여 도움말을 읽고 이해하는 방법을 보여주십시오. 문서에서 cor, hist 등 가르치십시오 . 아무리 똑똑해도 1 시간이면 제한이 있습니다 . 정보를 직접 얻고 문제 를 스스로 해결 하는 법을 배워야 합니다 .
gung-복직 모니카

1
나는 당신에게서 도보로 약 10 분 일한다고 생각합니다. 그래서 커피 위로 무엇인가를 가고 싶다면 소리 지르십시오. :)
Michelle

나는 그것이 주로 생각하지 않는 , 그것은이다 방법 . 학생들이 부분적으로 물건을 배우고 포괄적 인 치트 시트와 일부 가정 과제를 갖도록하는 것입니다.
Ondrej

@Michelle는 - med.govt.nz [에] peter.ellis 날 이메일을 보내, 좋은 소리
피터 엘리스

4
이것은 놀랍도록 야심 찬 목록입니다! 나는 당신이 세 시간 안에이 모든 것을 다루는 것을 상상할 수 없습니다. 나는 세 시간 안에이 모든 것을 다룰 단어를 말할 수 없을 것이라고 생각합니다. 완전히 건너 뛸 몇 가지 개념이 있습니다. 작업 영역 (스크립트를 사용하여 모든 것을 재생성하면 코드가 더 강력 해집니다), 첨부 (특히 환경을 이해하지 못하는 새로운 사용자에게도 문제가 있음), 조옮김 (사소한) 필요할 때 찾아보고 cbind (거의 절대 사용하지 않습니다).
Matt Parker

2

Peter의 목록에 다음을 추가합니다.

  1. 부분 집합 데이터 프레임 : 관찰에 의한 부분 집합 (예 : 3 이상의 모든 반응), 부분 집합.
  2. ifelse 문을 사용하십시오 (이것은 나에게 큰 학습 곡선이었습니다 .if 문 유형을 계속 사용하려고했습니다), 특히 중첩 된 ifelse.
  3. 집계 명령을 사용하여 데이터를 더 작은 데이터 프레임으로 요약합니다.
  4. == 연산자 사용 학습
  5. = 대신 <-사용
  6. 변수 이름 바꾸기
  7. SAS의 max (A, B)와 같은 기본 벡터화 트랩은 A가 데이터 프레임의 변수이고 B가 단일 값인 경우 R에서 max (A, B)가 수행하는 작업을 수행하지 않습니다. SAS 코드 (및 아마도 SPSS 코드)와 동등한 작업을 수행하기 위해 ifelse 문을 사용합니다.
  8. 부착 대신에 사용하십시오. :)

더 많은 생각 : 그들은 아마 COMPUTE많이 사용 SPSS하므로 그렇게하는 방법을 다루는 R것이 좋습니다. 또한 RECODER 에서 변수를 사용 하는 방법 . 내가 사용할 때 SPSS대부분의 "비 분석"작업은 두 명령 을 사용 하고 있다고 생각합니다.


1
pmax를 살펴보십시오 ...
Elvis

@ Xi'an, 지금 거기에 가서 엿보기 (또는 찌를!) 아, 나는 당신을 클릭하지 않았으며, 나는 R- 블로거 링크를 통해 블로그에 몇 번 갔다. :)
Michelle

2
다루는 ifelse경우 작동 방식과 설명서의 경고의 의미를 보여주십시오. 일단 생각하면 논리적으로 작동하지만 ifelse변수 유형을 "변경"하고 많은 시간을 낭비하는 것에 대한 혼란을 보았습니다 .
Wayne

2
@ Xi'an : R 도움말에 따르면 "연산자 = 최상위 수준 (예 : 명령 프롬프트에 입력 된 전체 식) 또는 괄호 식 목록의 하위 식 중 하나만 허용됩니다." 나는 a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; b첨자가 동일한 결과를 제공하지만 b다른 곳 (처음 변경되지 않음, 두 번째 변경됨) 과 같은 C-ish 일 뿐이지 만 블로그에 언급되지 않은 상황을 생각할 수 있습니다 . 가 =할당 될 운명 적이 R은 더 맛이 만들려고하는 변경 적이 있어야합니다. 하지마
Wayne

1
@Elvis +1000 개의 인터넷이 제공됩니다 pmax.
Michelle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.