inflearn logo
강의

講義

知識共有

[RをRしてください] R基礎をつくる

機能

사용자 정의 함수

解決済みの質問

330

magnet0922

投稿した質問数 5

2

사용자 정의 함수를 생성할 때 중괄호 위치가 중요한가요? return과 같은 줄에 사용하면 에러가 뜨고 밑줄에 사용하면 정상적으로 작동하는데 그 이유가 무엇인가요?

r

回答 1

0

datadoctor

안녕하세요. magnet0922님

괄호의 위치는 R 뿐만 아니라 다른 언어에서도 매우 중요합니다.

예를 들어 다음과 같은 경우는 에러가 발생하지 않습니다.

asdf = function(x){
  return(1)
}

 

하지만 다음의 경우에는 에러가 발생하는 것이 정상입니다만, 여기서 분명 에러가 발생했을 것으로 예상이 됩니다.

asdf = function(x){
  return(1)}

 

다음의 경우에도 에러가 발생하지 않습니다.

asdf = function(x){return(1)}

 

한 줄로 처리를 하는 경우는 return() 함수와 같은 줄에 있어도 관계 없으나 사용자 정의 함수를 2줄 이상으로 정의 하는 경우는 중괄호를 별도의 행에 위치 시키는 것을 권장합니다.

이번의 경우에는 RStudio에서 개별 행을 실행시켜서 아마 다음과 비슷한 에러를 보셨을 겁니다.

Error: unexpected '}' in "  return(1)}"

기본적으로 RStudio에서는 중괄호의 시작 또는 끝이 있는 행에 커서를 위치 시킨 상태에서 코드를 실행하면 그 중괄호에 엮이는 코드를 전부 실행하게 됩니다. 그런데 이 경우에는 RStudio가 전체 묶음 코드를 실행시킨 것이 아니라 한 줄의 코드만 실행한 것으로 판단됩니다.

 

다음과 같이 블럭 지정하여 한 번에 실행시키면 문제 없이 동작하는 것을 볼 수 있습니다.

image

혹시 상기 내용에 대한 문제가 아니었다면 다시 좀 더 상세하게 재질문 바랍니다.

 

감사합니다.

 

문의하면 '사람'이 답변해주면 좋겠네요.

0

41

1

보내주신 링크 에러납니다

0

43

1

찾을 수 없고, 강사가 볼 수 있는 게시판도 찾기 어렵습니다

0

50

2

섹션 11/26강 수강 중 공유 파일

0

45

2

자료

0

36

1

실전문제 풀이(1) - 문제 3

0

49

2

load("comments.RData") load("score.RData")... 이 파일 어디있나요

0

40

1

시험때 질문

0

64

2

사용자 계정 띄어쓰기

0

36

1

제6회 기출복원문제 제2유형

0

65

2

Sampling Bias

0

189

1

강의자료 다운로드 방법

0

78

2

파일 가져오기 실패

0

51

1

과목뵬교안 자료

0

105

2

교안 및 문제의 PDF파일은 어디서 다운로드 받나요?

0

209

2

제1유형 실전문제 풀이(1)에서요

0

79

2

tagxedo 사이트 사용관련

0

67

0

실습자료가 강의와 안 맞음

0

103

2

보통명사 추출하기

0

325

1

스크립트 사이드바 x 표시

1

346

1

wday() 함수

1

243

1

typeof(123)

0

232

1

package 불러오기에 대하여

1

243

1

Section 0 <원소>

2

217

1