Private 영역에 작성한 2019 R note도 상호 보완적인 관계에 있으니 계속 업데이트해 나갈 것.
> .Platform > graphics.off() # 모든 그림 화면 끄기 > rm(list=ls()) # Removes all objects from the current workspace (R memory) > search() # 설치된 패키지 확인 > edit(var) # 데이터 편집기
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