Table of Contents

정해영의 R 노트

Private 영역에 작성한 2019 R note도 상호 보완적인 관계에 있으니 계속 업데이트해 나갈 것.

유용한 글 링크

R graphics

Stack Overflow에 게시된 글

정해영의 블로그: 하루에 한 R 시리즈

[하루에 한 R] - 전체 블로그 글을 날짜순으로 정렬하여 보여주기

KGOL 강좌 수강 노트

R을 활용한 통계학 개론(2018) 강좌 소개

짧은 팁

> .Platform
> graphics.off()  # 모든 그림 화면 끄기
> rm(list=ls())  # Removes all objects from the current workspace (R memory)
> search() # 설치된 패키지 확인
> edit(var) # 데이터 편집기

긴 팁(코드 조각)

R snippets

질문 리스트

꼭 알아야 할 개념과 기술 목록

활용 사례

CSV 파일의 병합

데이터프레임-행과 열의 이름 일괄 변경

데이터프레임-행과 열의 이름을 통한 조작

데이터프레임-특정 조건을 충족하는 데이터의 추출

antiSMASH 데이터셋을 사용한다. 첫 줄의 '#'는 삭제할 것.

$ wget http://genoglobe.kr/kribb/_media/asdb_search_results.zip
$ unzip asdb_search_results.zip
$ cp asdb_search_results.csv asdb_search_results.csv.bak
$ awk '{gsub("^#", ""); print}' asdb_search_results.csv.bak > asdb_search_results.csv
data = read.table("asdb_search_results.csv",sep="\t",header=T)

# by column index
data[,6]

data[,c(1,2,3)]

data[,1:5]

# by column name
data$Strain # 반환되는 것은 factor
strain.nr = levels(data$Strain) # strain이 몇 가지나 되는가?
data[which(names(data) == "Strain")] # 반환되는 것은 data frame
data[names(data) == "Strain"] # which()를 쓰지 않아도 작동은 한다.
data[which(names(data) == "NCBI.accession")] # 다른 사례
data[which(names(data) %in% c("Strain","Species"))] # 여러 컬럼을 추출하기
sel.col = c("Strain","NCBI.accession","From","To","BGC.type")
data[which(names(data) %in% sel.col)]

# Genus와 Species 컬럼을 결합하고 문자열 치환하기
data$Species = paste(data$Genus, data$Species, sep=" ")
data = data[,-1]
data$Species = gsub("Unclassified", "sp.", data$Species)
# 다음과 같이 해도 된다.
#data[,2] = paste(data[,1], data[,2], sep=" ")
#data = data[,-1]
#data[,1] = gsub("Unclassified", "sp.", data[,1])

# 조건에 맞는 row 전체 혹은 일부 컬럼만 추출하기
data[which(data$Strain == "E681"),] # do not omit comma!
data[which(data$Strain == "E681"), names(data) == "Most.similar.known.cluster"]
# how to extract multiple strains?
sel.str = c("E681","M1","CR1")
data[which(data$Strain %in% sel.str),] # working!
data[which(data$Strain %in% sel.str), names(data) == "Most.similar.known.cluster"]

# logical indexing
L = data$Strain == "E681"
data[L,]
data[L,]$NCBI.accession

# using subset() function
subset(data, Strain == "E681")
subset(data, Strain == "E681", select = c("Strain","From","To")) # restict to specified columns
subset(data, Strain = c("E681","M1","CR1")) # not working!
subset(data, Strain %in% c("E681,"CR1")) # not working

# use dplyr() for advanced applications

데이터프레임- row-wise maximum

샘플 데이터