제2 장 R 과 Bioconductor 소개 (1)
2.1 R 에서 도움 찾기
도움 을 어떻게 찾 는 지 아 는 것 은 R 과 Bioconductor 를 시작 하 는 중요 한 단계 로 대량의 함수, 클래스 와 당신 이 만 날 개념 을 포함한다.조작 기호?R 대상 정 보 를 주 는 가장 직접적인 출처 입 니 다.이름 앞 에 하나?이 함수 의 도움말 문서 에 빠르게 들 어가 게 해 드릴 까요?클래스 에 대한 특수 한 기능 이 있 습 니 다.class ? foo 는 foo 류 의 도움말 문서 페이지 에 들 어 갑 니 다. 이 종류의 사용 가능 한 방법 에 대한 정 보 를 찾 을 수 있 습 니 다.
함수 apropos 는 주어진 문자열 과 일치 하 는 대상 경 로 를 찾 을 수 있 고 find 도 대상 을 찾 을 수 있 지만 일치 가 더욱 엄격 합 니 다.
apropos("mean")
[1] "colMeans" "kmeans"
[3] "mean" "mean.Date"
[5] "mean.POSIXct" "mean.POSIXlt"
[7] "mean.data.frame" "mean.default"
[9] "mean.difftime" "rowMeans"
[11] "weighted.mean
find("mean")
[1] "package:base"
어떤 주제 나 개념 에 대한 정 보 를 얻 으 려 면 help. search 를 시도 해 보 세 요.이 함 수 는 주어진 문자열 과 일치 하 는 도움말 시스템 의 문 서 를 검색 합 니 다. 파일 이름, 별명, 제목, 개념 또는 키 워드 를 포함 합 니 다.이름 이나 제목 이 일치 하 는 도움말 항목 이 표 시 됩 니 다.
help.search("mean")
더 많은 풍부 한 정 보 는 사이트 에 있 습 니 다. 아주 좋 은 소 개 는 R - Foundation (2007) 입 니 다.많은 R 관련 문제 에 대해 서 는 R - FAQ 에서 답 을 찾 을 가능성 이 높다.R 과 Bioconductor 의 메 일 링 리스트 에 더 많은 특별한 도움말 자원 이 있 습 니 다.부분 집합 에 대한 관심 과 전문 수준 에 따라 서로 다른 하위 목록 에서 R 커 뮤 니 티 에 문 제 를 제출 할 수 있 습 니 다.그 전에 게시 물 안내 서 를 읽 어야 합 니 다.보통 메 일 링 리스트 의 문 제 는 주요 댓 글 규칙 에 저촉 되 기 때문에 대답 하지 않 습 니 다.문 제 를 제출 하기 전에 인터넷 메 일 프레임 워 크 를 검색 하 는 것 이 좋다.많은 문제 들 이 이미 다른 사람들 이 질문 과 대답 을 했다.Bioconductor 는 또 검색 할 수 있 는 문서 가 하나 있 는데, R 의 문서 이 페이지 들 은 Bioconductor 와 R - Project Web 홈 페이지 에서 도 찾 을 수 있다.
대부분의 Bioconductor 가방 의 vignetts 는 가치 있 는 정보 자원 을 함유 하고 있다.Vignetts 는 하나 또는 한 조 의 임 무 를 완성 하 는 데 필요 한 모든 절 차 를 묘사 하 는데 이 임 무 는 바로 이 가방 디자인 의 목적 이다.텍스트 와 실행 가능 한 코드 가 한 문서 에 놓 여 있 습 니 다. 읽 고 있 는 이 글 과 비슷 합 니 다. 이 는 자신의 컴퓨터 에서 개성 화 된 절 차 를 만 들 거나 임 무 를 위해 특별한 수식 을 할 수 있 습 니 다.Biobase 에 있 는 openVignette 함 수 는 vignetts 의 PDF 버 전 을 열 수 있 습 니 다.Vignetts 는 가방 을 불 러 온 후에 얻 을 수 있 습 니 다. (다음 부분 은 가방 의 개념 을 소개 할 것 입 니 다.)Exercise 2.1
2.2 가방 사용
R 과 Bioconductor 의 디자인 은 모듈 화 된 것 이다.대량의 기능 은 추 가 된 소프트웨어 유닛 인 '가방' 을 통 해 제공 된다.R 과 Biocondunctor 는 모두 대량의 사용 가능 한 가방 을 가지 고 있다.데 이 터 를 처리 하기 전에 가방 을 찾 고 다운로드 하 며 설치 하 는 법 을 배 워 야 한다.
여러 가지 다른 경로 가 있 는데, 우 리 는 그들 이 갈수 록 표준화 되 기 를 바란다.R 패 키 지 는 library 에 저 장 됩 니 다.대부분의 사람들 이 개인 용 컴퓨터 에 하나 밖 에 없 음 에 도 불구 하고 컴퓨터 안에 여러 개의 library 가 있 을 수 있 습 니 다.library 에 가방 을 추가 하려 면 다운로드 와 설치 가 필요 합 니 다.이후 이 가방 을 사용 할 때마다 불 러 오기 만 하면 library 함수 나 require 함 수 를 사용 할 수 있 습 니 다.
R 버 전의 GUI (Windows 또는 Mac OS X) 다운로드 에서 다운로드 패 키 지 를 완성 할 수 있 습 니 다. 이 플랫폼 에서 설치 하고 싶 은 패 키 지 를 한 목록 에서 선택 하면 다운로드 되 어 설 치 됩 니 다.가방 을 설치 한 후 에는 자동 으로 로드 되 지 않 으 니, 너 는 반드시 스스로 손 을 써 야 한다.이 메커니즘 은 기본적으로 적당 한 바 이 너 리 패 키 지 를 다운로드 합 니 다.
함수 install. packages 로 특별한 가방 을 다운로드 할 수 있 습 니 다.install. packages 함수 제어 에 관 한 논쟁 은 의존 하 는 가방 을 함께 다운로드 하 는 것 이 아니 냐 는 것 입 니 다. Bioconductor 에서 TRUE 로 설정 하 는 것 을 강력 히 권장 합 니 다.
가능 한 한 Bioconductor 가방 을 편리 하 게 설치 하기 위해 서, 우 리 는 네트워크 스 크 립 트 biocLite 를 제공 합 니 다. 당신 은 그것 으로 모든 Bioconductor 가방 과 의존 가방 을 설치 할 수 있 습 니 다.너 도 그것 으로 CRAN 의 가방 을 설치 할 수 있다.graph 와 xtable 패 키 지 를 biocLite 로 설치 하 는 방법 을 보 여 줍 니 다.
source("http://bioconductor.org/biocLite.R")
biocLite(c("graph", "xtable"))
명령 update. packages 는 설 치 된 패키지 의 최신 버 전 을 검사 하고 설치 할 수 있 습 니 다.업데이트 패키지 에 Bioconductor 창고 에 저 장 된 URL 을 제공 하여 Bioconductor 패 키 지 를 업데이트 해 야 합 니 다.추천 하 는 패 키 지 를 업데이트 하 는 방법 은 다음 과 같 습 니 다.
source("http://bioconductor.org/biocLite.R")
update.packages(repos=biocinstallRepos(), ask=FALSE)
연습
2.3 R 기초
시작 하기 전에 R 의 기본 데이터 구조 와 기본 조작 을 숙지 하도록 하 세 요. 이것 은 이미 존재 하 는 소프트웨어 를 사용 하고 자신의 스 크 립 트 를 쓰 는 데 중요 합 니 다.만약 당신 이 아래 의 다섯 가지 문제 가 매우 간단 하 다 는 것 을 발견 한다 면, 당신 은 이미 이 장의 내용 을 계속 하고 게놈 데이터 의 대부분 내용 을 처리 하 는 것 을 배 울 준비 가 되 어 있 습 니 다.그렇지 않 으 면 'R 프로필' 장 으로 돌아 가 [R 기지] 를 찾 아야 할 지도 모른다 (http://cran.r-project.org/manuals/ R - intro. html) 홈 페이지 는 이 언어의 본질 에 대한 더 많은 세부 사항 을 얻 을 수 있 습 니 다.
연습
2.3.1 함수
R 에 함 수 를 쓰 는 것 은 매우 쉽다.모든 함수 가 입력 을 받 아들 이 고 값 을 되 돌려 줍 니 다.R 에서 한 함수 의 반환 값 은 호출 함수 return 을 통 해 명확 하 게 설명 하거나 마지막 표현 식 의 계산 결과 입 니 다.다음 두 함 수 는 같은 결 과 를 되 돌려 줍 니 다.
sq1 = function(x) return(x*x)
sq2 = function(x) x*x
이 함수 들 은 양 적 이다.이것 은 당신 이 벡터 x 를 전달 할 수 있다 는 것 을 의미 하고 함수 가 벡터 중의 모든 요 소 를 제곱 할 것 이다.두 개의 길이 가 같 지 않 은 벡터 를 사용 하면 양 적 작업 에서 R 은 비교적 짧 은 것 을 순환 하려 고 시도 할 것 입 니 다.이것 은 어떤 응용 에 매우 유용 할 지 모 르 지만 기대 하지 못 하 는 결 과 를 초래 할 수도 있다.
연습 2.4 이 연습 에서 나 는 네가 다음 부분 에서 사용 할 함 수 를 쓰 기 를 바란다.그것 은 R 의 함수 paste 에 의존 합 니 다. 아마도 이 함수 의 도움말 문 서 를 읽 고 싶 을 것 입 니 다.이 함 수 는 문자열 을 입력 으로 받 아들 여 문자열 을 되 돌려 주 고 문자열 앞 에 문 자 를 추가 합 니 다 *.우 리 는 그것 에 게 * ppc * 를 하 라 고 했다.우리 가 바 라 는 것 은 이렇게 * * ppc ("xx") * * "xx" 로 돌아 가 는 것 입 니 다. *사용자 정의 함 수 를 자주 사용 하 는 곳 중 하 나 는 apply 함수 시리즈 입 니 다. 다음 부분 에서 예 를 보 여 드 리 겠 습 니 다.
2.3.2 apply 계 함수
R 에서 대량의 작업 은 일부 함 수 를 응용 하여 배열, 행렬 또는 목록 에 작용 하 는 것 이다.몇 가지 함 수 를 사용 할 수 있 습 니 다. apply, lapply, sapply 가 가장 자주 사용 합 니 다.eapply 함 수 는 하나의 environment 의 모든 클래스 에 함 수 를 전달 할 수 있 습 니 다.아래 장 에서 우 리 는 환경 을 어떻게 만 들 고 일 을 하 는 지 보 여 줄 것 이다.apply 계 함수 가 어떻게 작 동 하 는 지 이해 하기 위해 서, 우 리 는 그것들 로 Affymetrix 를 탐색 합 니 다.®HG-U95Av2 GeneChip®메타 데이터이 데 이 터 는 우리 가 eapply 함 수 를 사용 할 환경 에 저장 되 어 있 기 때문이다.hgu95av2MAP 환경 은 앙 비 프로 브 번호 (Affymetrix) 와 염색체 구역 의 포 지 셔 닝 맵 을 포함 합 니 다.예 를 들 어 아래 코드 는 유전자 프로 브 1001 을 발견 할 수 있 습 니 다.at (TIE 1) 에 대응 하 는 염색체 밴드.
library("hgu95av2")
hgu95av2MAP$"1001_at"
[1] "1p34-p33"
우 리 는 apply 계 함수 로 특정한 염색체 나 그 부분 에 대한 모든 매 핑 정 보 를 추출 할 수 있 습 니 다.우선 우 리 는 17 번 염색체 p 팔 에 있 는 모든 맵 을 찾 고 싶다 면 우리 의 문 제 를 명 확 히 한다.그리고 나 서 우 리 는 이 매 핑 위치의 문자열 이 17p 로 시작 되 는 것 을 알 았 다.이것 은 가장 간단 한 정규 표현 식 입 니 다. ^ 17P, 여기 서 문 자 를 벗 습 니 다. ^ 는 우리 가 처음부터 이 문자 와 일치 하 는 것 을 의미 합 니 다.우 리 는 두 단계 로 나 누 어 합 니 다. 먼저 eapply 와 grep 함수 로 grep 를 조회 하고 일치 하 는 값 을 되 돌려 줍 니 다.
myPos = eapply(hgu95av2MAP, function(x) grep("^17p", x,
value=TRUE))
myPos = unlist(myPos)
length(myPos)
[1] 190
여기에서 우 리 는 익명 함 수 를 사용 하여 hgu95av2MAP environment 의 모든 요 소 를 처리 합 니 다.우 리 는 먼저 그것 을 명명 한 후에 그것 을 호출 할 수 있다.
f17p = function(x) grep("^17p", x, value=TRUE)
myPos2 = eapply(hgu95av2MAP, f17p)
myPos2 = unlist(myPos2)
identical(myPos, myPos2)
[1] TRUE
연습 2.5 는 이전 연습 에서 만 든 함수 ppc 로 새로운 함 수 를 만 들 고 임의의 염색 체 를 찾 거나 되 돌 릴 수 있 도록 합 니 다.
2.3.3 환경
R 에서 환경 은 일련의 기호 - 값 이 맞 는 집합 이다.이것 은 목록 과 비슷 하지만 값 을 정렬 하지 않 기 때문에 숫자 색인 을 사용 할 수 없습니다.그렇지 않 으 면, 그것들 은 같은 방식 으로 변 한다.앞의 장 에 서 는 아 웅 비 프로 브 번호 와 염색체 구역 의 포 지 셔 닝 맵 을 저장 하 는 environment 을 사용 하 였 습 니 다.여기 서 당신 의 environment 를 어떻게 처리 하 는 지 보 여 드 리 겠 습 니 다.우 리 는 먼저 environment 를 만 든 다음 에 저장, 삭제, 내용 에 대한 목록 을 만 드 는 간단 한 작업 을 수행 합 니 다.
e1 = new.env(hash=TRUE)
e1$a = rnorm(10)
e1$b = runif(20)
ls(e1)
[1] "a" "b"
xx = as.list(e1)
names(xx)
[1] "a" "b"
rm(a, envir=e1)
연습
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.