Script )
library(dplyr) library(ggplot2) library(lubridate) #날짜 관련 패키지 library(tidyr) # gather함수 담고 있음 avocado<-read.csv("avocado.csv",header=TRUE,sep=",") avocado # 표본의 개수, 변수의 개수 파악하기 dim(avocado) # 그룹 만들고 그 그룹에 대한 Total.volume와 Averageprice평균 구하기 (x_avg = avocado %>% group_by(region) %>% summarize(V_avg = mean(Total.Volume), P_avg = mean(AveragePrice))) View(x_avg) # 히스토그램 보기 hist(x_avg$V_avg) # 데이터 시각화 plot(x_avg$P_avg,x_avg$V_avg) # region,year로 그룹 만들고 그 그룹에 대한 Total.volume와 Averageprice평균 구하기 (x_avg = avocado %>% group_by(region, year) %>% summarize(V_avg = mean(Total.Volume), P_avg = mean(AveragePrice))) View(x_avg) # region,year,type으로 그룹 만들고 그 그룹에 대한 Total.volume와 Averageprice평균 구하기 x_avg = avocado %>% group_by(region, year, type) %>% summarize(V_avg = mean(Total.Volume), P_avg = mean(AveragePrice)) View(x_avg) # TotalUS빼고 ggplot를 통해 시각화한다. x_avg %>% filter(region != "TotalUS") %>% ggplot(aes(year, V_avg, col = type)) + geom_line() + facet_wrap(~region) # V_avg기준으로 x_avg를 내림차순 ax_avg<-arrange(x_avg,desc(V_avg)) View(ax_avg) # 필터 주기 x_avg1 = x_avg %>% filter(region != "TotalUS") x_avg1 x_avg1 = x_avg %>% filter(region == "Albany") x_avg1 # 필터 조건 여러 개 주기 x_avg.state<-x_avg %>% filter(region==("Albany")|region==("Atlanta")) x_avg.state # 통계 함수 사용하기 max(x_avg1$V_avg) #최대값 mean(x_avg1$V_avg) #평균값 var(x_avg1$V_avg) #분산 median(x_avg1$V_avg) # 중앙값 mode(x_avg1$V_avg) #최빈값 # lubridate패키지의 month함수 사용해서 그룹핑,평균 구하기 (x_avg = avocado %>% group_by(region, year, month(Date), type) %>% summarize(V_avg = mean(Total.Volume), P_avg = mean(AveragePrice))) # txt파일 불러오기 wine<-read.table("wine.data.txt",header=TRUE,sep=",") View(wine) # csv파일 만들기 write.csv(x_avg,file="xavocado") # txt파일 읽고 저장 n<-readLines("wine.name.txt") n # n으로부터 문자열 빼와서 wine의 names로 설정 [두 번째 인수는 시작 인덱스,세 번째 인수는 끝낼 인덱스] # nchar함수는 문자열의 크기 구하는 함수 names(wine)[2:14] <- substr(n,4, nchar(n)) View(wine) # wine에서 60퍼 가져오기 train_set = sample_frac(wine, 0.6) str(train_set) # wine-train_set 구하기 <차집합>: wine에 속하면서 train_set에 속하지 않으니까 나머지 40퍼 구하는거 test_set = setdiff(wine, train_set) str(test_set) # 새로운 csv파일 가져오기 elec_gen = read.csv("electricity_generation_per_person.csv", header = TRUE, sep = ",") View(elec_gen) elec_use = read.csv("electricity_use_per_person.csv", header = TRUE, sep = ",") names(elec_use)[2:56] = substr(names(elec_use)[2:56], 2, nchar(names(elec_use)[2:56])) View(elec_use) # gather함수를 이용해서 기준열과 두 개의 열 만들기 <기준열은 두 번째 인수에 쓰이며 -가 들어감> # <두 열은 키 열과 값 열로 구성> elec_gen_df = gather(elec_gen, -country, key = "year", value = "ElectricityGeneration") View(elec_gen_df) elec_use_df = gather(elec_use, -country, key = "year", value = "ElectricityUse") View(elec_use_df)
북 참고) R로 배우는 데이터 과학