필자의 경우 컴퓨터 언어와 관련해서 공부할 때 가장 어려운 부분 중 하나가 어떤 단어의 의미가 해당 언어에서만 쓰는 특이한 것인지, 아니면 일반적인 단어로 사용하는 것인지 분간되지 않을 때다. R에서 환경(enviroment)이라는 개념이 그랬다. R Studio에 'Enviroment' 라는 창을 보고 나서야 그 의미를 이해할 수 있었다. R에서 환경은 리스트 못지 않게 중요한 데이터 타입 중 하나다. R에서는 환경이 일반 단어가 아니고, 아토믹 벡터 또는 리스트와 같은 R 객체의 한 종류이다. 환경이라는 개념을 이해하지 못하면 클로저(closer), 함수 호출, R패키지의 작동 원리도 항상 마법처럼 느껴질 것이다. 심지어 ls(), rm() 함수도 제대로 이해하지 못한 것일 수 있다. 다음 글들에는 ..
반환값을 반환하는 방법 샤이니 앱을 만들 때 필요한 가장 중요한 R언어 지식은 아무래도 R 함수이다. 특히 샤이니 앱을 만들 때 R에서 두가지 방법으로 함수가 값을 반환한다는 사실을 아는 것이 중요하다. R 함수의 반환 값은 다음 두 가지 방법 중 하나로 반환된다. - return() 함수를 사용한 명시적인 방법 - 함수 몸체(body)에서 가장 마지막 표현식의 값 다음은 두 방법으로 각각의 함수를 정의한 것이다. 차이는 없다. > sq1 sq2 x x [1] 5.5 함수는 값을 반환할 뿐만 아니라 부수효과를 낼 수도 있다. 다시 이야기하자면 R에서 모든 함수는 값을 반환하고, 어떤 함수는 값을 반환하기도 하지만 부수효과도 낸다. 부수효과는 플롯이 될 수도 있고, 콘솔에 대한 출력이 될 수도 있다. 즉 ..
어떤 데이터에서 그 일부를 얻는 과정을 서브세팅이라고 한다. R은 아주 다양한 서브세팅 방법을 제공한다. 그중 가장 흔한 것이 $,[,[[ 등을 사용한 서브세팅이다. 이것들은 비슷한 것 같으면서도 조금씩 다르다. 샤이니 앱을 만들 때 서브세팅을 하는 경우에 가장 중요한 사실은 [ 또는 [[ 는 프로그램적으로 원하는 변수를 지정할 수 있지만 $는 그러면 안된다는 것이다. 이를테면 input$sel에서 mtcars 데이터 프레임에 있는 변수들을 선택하도록 앱을 구성했을 때, 서브세팅을 할 때에는 다음과 같이 해서는 안된다. > mtcars$`input$sel` # NULL 값이 출력 > mtcars[input$sel] > mtcars[[input$sel]] #정상 값이 출력 샤이니 앱에서 반응성 값(reac..
데이터 프레임은 R 데이터 구조 중 실용적인 측면에서 가장 많이 사용하는 것이다. 엑셀 프로그램이나 기타 파일, 데이터베이스 등에서 데이터를 읽어오는 대부분의 함수들은 기본적으로 데이터 프레임으로 읽어 들인다. 또 데이터 프레임은 스프레드시트나 데이터 베이스의 테이블과 비슷하게 사람들이 가장 직관적으로 이해하기 편해서 자주 사용한다.그러므로 R에 능숙해지기 위해서라면 데이터 프레임을 자유자재로 활용할 수 있는 능력을 갖추어야 한다. 데이터 프레임 서브세팅은 앞에서 소개한 벡터 서브세팅의 개념을 2차원으로 연장한 것이다. 여기서는 R에 내장된 mtcars 라는 데이터 프레임을 가지고 설명할 것이다. 이 데이터는 자동차 관련 잡지에서 뽑은 것으로, 자세한 내용은 help(mtcars),?() 으로 통해 확인..