더북(TheBook)

5.6.1 lapply

이전 예제에서 보았듯이, lapply() 함수는 벡터 하나와 함수 하나를 입력으로 받는다. 주어진 벡터의 각 요소를 입력 함수에 적용하여 모든 결과를 포함하는 리스트를 반환한다.

각 반복 연산이 서로 독립적일 때 유용한 함수다. 이때는 반복자를 명시적으로 설정할 필요가 없다.

벡터뿐 아니라 리스트를 입력으로 할 수도 있다. 학생 정보를 가진 리스트가 있다고 가정하자.

> students <- list(
+     a1 = list(name = "James", age = 25,
+         gender = "M", interest = c("reading", "writing")),
+     a2 = list(name = "Jenny", age = 23,
+         gender = "F", interest = c("cooking")),
+     a3 = list(name = "David", age = 24,
+         gender = "M", interest = c("running", "basketball")))

요소가 다음 형태의 문자형 벡터를 만들고자 한다.

James, 25 year-old man, loves reading, writing

sprintf() 함수는 타입별 표시 기호(예를 들어 문자열은 %s, 정수는 %d)가 있는 자리를 해당 입력 인수로 대체하여 원하는 문자열을 만드는 데 유용하다. 다음 예제를 살펴보자.

> sprintf("Hello, %s! Your number is %d.", "Tom", 3)
[1] "Hello, Tom! Your number is 3."
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.