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