newstars/hongongR

질문 있습니다

Closed this issue · 7 comments

안녕하세요 혼공 R데이터 공부하다가 질문이 있어서 올립니다 :)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[첫번째 질문]

108쪽의 사용자 정의 함수를 만들때
res(사용자가 만든 변수의 예)는

사용자 정의 함수를 여러 개 만들 때마다
res 라는 똑같은 변수를 사용해도 되나요?

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[두번째 질문]

109쪽의 손코딩에서

multi_three_return <- function(x,y,z){
res <- xyz
return(res)
}

이 코딩을 res 변수 지정하지 않고

multi_three_return <- function(x,y,z){
return(xyz)
}

이렇게 써도 되나요?

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[세번째 질문]

136~137쪽에서

lapply 와 sapply는 apply와 다르게 행이나 열을 지목을 안 하는데, 137쪽에서 어떻게 열을 읽은 건가요?

ex.
apply(iris[,1:4],2,sum)

lapply(iris[,1:4],sum)
sapply(iris[,1:4],sum)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[네번째 질문]

143쪽 3번 문제의 반복문에서

i <- i+1

이 부분을 쓰는 의미가 있는지 궁금합니다
이 부분을 빼도 같은 결과가 나와서 궁금증이 생겼습니다

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

감사합니다

안녕하세요.
질문이 여러개라 나눠서 답변 드리겠습니다.

우선 1번에 대해서는 사용자 정의 함수 내에 있는 res 변수는
해당 함수 안에서만 사용되는 지역변수 입니다.

지역변수는 함수 안에서만 사용되는 변수이고,
전역변수는 함수와 상관없이 전체 프로그램에서 사용할 수 있는 변수 입니다.

우리가 흔히 다루는 변수는 전역변수이구요.

예시를 드려봅니다.

함수마다 res 변수를 사용했지만 지역변수여서 각 함수 내에서만 값을 저장하고 있습니다.

add <- function(x,y) {
  res <- x+y
  return(res)
}

sub <- function(x,y) {
  res <- x-y
  return(res)
}

mul <- function(x,y) {
  res <- x*y
  return(res)
}

div <- function(x,y) {
  res <- x/y
  return(res)
}

add(3,2)
sub(3,2)
mul(3,2)
div(3,2)

2번

네 동일 합니다.

multi_three_return <- function(x,y,z){
  res <- x*y*z
  return(res)
}

multi_three_return <- function(x,y,z){
  return(x*y*z)
}

multi_three_return(3,4,5)

3번

인덱스를 사용하는 것이고, 말씀하신 137페이지 상단에 설명되어있습니다.

참고하시면 됩니다.

4번

이건 코드가 잘못들어간 것이 맞습니다.

다른 언어에서는 for()문 사용시에 R처럼 for(i in 1:100) 과 같이 1~100 을 지정해주지 않기 때문에
i <- i+1 이 추가됩니다.

해당 부분은 제거 해도 무방합니다.

감사합니다.

자세한 설명 감사합니다~^^

[첫 번째 질문에 대한 추가 질문]
사용자 정의 함수를 만들 때 res 말고, 다르게 변수를 정해도 되는 거지요?

[세 번째 질문에 대한 추가 질문]
제가 궁금한 부분은 lapply와 sapply에서는 apply처럼 margin값을 지정하지 않는데, 어떻게 열에 적용되는지 궁금합니다~^^

원래 열만 적용하게 되어 있는 것인지,
아니면 행을 적용할 수도 있는 것이라면 lapply와 sapply에서는 행 혹은 열, 둘 중에 어떤 것을 적용할 지, 어떻게 함수로 표현하는 지 궁금합니다. 예를 들어주시면 감사하겠습니다 :)

res 말고 다른걸 사용해도 무방합니다.

apply, lapply, sapply 함수 구조 자체에 대한 문제 입니다.
해당 내용은 134~137페이지를 다시 보시면 될 것 같습니다.

137페이지에 써있는 것처럼, 행, 열에 대한 설정은 인덱스를 이용해서 진행되는 부분입니다.

인덱스는 [] 대괄호로 표기하며, 앞은 행, 뒤는 열 을 의미합니다.

[,1:3] 이라는 것은 전체 행에서 1~3째 열이라는 것을 의미하구요.