01. ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ
1) ํค๋ณด๋ ์
๋ ฅ : ์๋์ ์๋ฃ (ํ
์คํธํ ๋ ์ฌ์ฉ)
num = scan() #์ซ์ ์
๋ ฅ
num
sum(num)
names = scan(what=character()) #์ ์ํ๋ฟ๋ง ์๋๋ผ ๋ฌธ์ํ ์
๋ ฅ ๊ฐ๋ฅ
names
2) ํ์ผ ์๋ฃ ์ฝ๊ธฐ(๋ถ๋ฌ์ค๊ธฐ)
์นผ๋ผ ๋จ์๋ก ๊ตฌ๋ถ : excel, csv
์ค๋น
getwd()
setwd("C:/ITWILL/2_Rwork/data") ์์
๊ฒฝ๋ก ๋ณ๊ฒฝ
02. ๋ํ ํจ์
(1) read.table() : ๊ณต๋ฐฑ, ํน์๋ฌธ์๋ก ์นผ๋ผ ๊ตฌ๋ถ
st1 = read.table('student.txt', header = FALSE) #์นผ๋ผ๋ช
์๋ ๊ฒฝ์ฐ
st1 v1 v2 v3 v4 -> ๊ธฐ๋ณธ ์ ๊ณต ์นผ๋ผ๋ช
st2 = read.table('student2.txt', header=TRUE) #์ ๋ชฉ ์ด์ ์ฒซ๋ฒ ์งธ ํ์ผ๋ก ์ธ์
st2
st3 = read.table('student2.txt', header=TRUE, sep";") #ํน์๋ฌธ์
st3
(2) read.csV() : ์ฝค๋ง๋ก ์นผ๋ผ ๊ตฌ๋ถ
st4 = read.csv('student4.txt') #header=TRUE, sep=','
st4
str(st4)
ํน์๋ฌธ์(-) -> NA(๊ฒฐ์ธก์น)๋ก ๋ณ๊ฒฝ
st4 = read.csv('student4.txt', na.strings="-")
st4 #๋ฐ์ดํฐ ์๋ฃํ์ด chr์์ int๋ก ๋ฐ๋
str(st4)
mean(st4$ํค, na.rm=TRUE) #na๊ฐ์ ์์๋ก ์์ ๊ณ , st4 ์นผ๋ผ ๊ฐ์ ํ๊ท
ํ์๊ธฐ ์ ๊ณต : file ์ ํ
test = read.csv(file=file.choose()) #ํ์ผ์ ํ ํ์
์ฐฝ
str(test)
(3) read.excel() : excel์ ์ฉ ๋ณ๋์ ํจํค์ง ์ค์น ํ์
install.packages('readxl')
library(readxl)
help("read_excel")
st_excel = read_excel('studentexcel.xlsx')
st_excel
03. ์ธํฐ๋ท ํ์ผ ์ฝ๊ธฐ
๋ฐ์ดํฐ ์
์ ๊ณต ์ฌ์ดํธ
https://vincentarelbundock.github.io/Rdatasets/datasets.html
https://r-dir.com/reference/datasets.html - Dataset site
http://www.rdatamining.com/datasets
์ฌ๋ก
titanic = read.csv('https://vincentarelbundock.github.io/Rdatasets/csv/COUNT/titanic.csv')
str(titanic)
์ ์ฃผํ ๋ณ์์ ๋น๋์
table(titanic$class)
์ฑ๋ณ ๋น๋์
satle(titanic$sex)
์์กด ์ ๋ฌด
table(titanic$survived)
๊ต์ฐจ๋ถํ ํ
table(titanic$sex, titanic$survived) #๊ฒ์ฆ์ ํตํด ๋ ๋ฐ์ดํฐ ๊ฐ ์ฐ๊ด์ฑ์ ์ฌ๋ถ
[์์ ] ๋จ์ฑ ์์กด ๋น์จ ๊ตฌํ๊ธฐ
cat('๋จ์ฑ ์์กด๋น์จ=', 175/(694+175)) #๋ฌธ์์ด+์์
print(175/(694+175)) #์์, ์์
2) ํ์ผ ์๋ฃ ์ ์ฅ
table() <-> write.table()
read.cvs() <-> write.csv(
read.excel() <-> wite_xlsx()
(1) write.csv()
titanic_df = subset(titanic, select=c(class, sex, survived))
str(titanic_df) #subset ์์ฑ
taitanic_df
ํ ์ด๋ฆ, ์ด์ค๋ถํธ ์ ์ธํ๊ณ ์ ์ฅํ๊ธฐ
write.csv(titanic_df, 'titanic.csv', row.names=FALSE, quote=FALSE)
df=read.csv('titanic.csv')
df
(2) write_xlsx() - ์ค์น ํ์
install.packages('writexl')
library(writexl)
write_xlsx(st_excel, path = 'student_ex.xlsx')
04. subset ๋ง๋ค๊ธฐ
x = 1:5
y = 6:10
z = letters[1:5]
df = data.frame(x,y,z)
df
help("subset")
1) subset์กฐ๊ฑด์ : ํ ์ ํ
df2 = subset(df, subset=y>=8)
df2
2) select=c(์นผ๋ผ๋ช 1, ์นผ๋ผ๋ช 2, ...) : ์ด ์ ํ
df3 <- subset(df, select = c(x,y))
df3
3) ์นผ๋ผ๋ช , %in%, (list) : ๊ดํธ ์์ ๋ชฉ๋ก๊ณผ ์ผ์นํ๋ ๊ฒ๋ง ์ถ๋ ฅ
df4 = subset(df, z%in% c('a','c','e')) #ํ ๋จ์ ์๋ฃ ์ถ์ถ
df4
[์์]
data("iris") #Rstudio ์ ๊ณต
str(iris) ๋ถ๊ฝ ๋ฐ์ดํฐ์
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... ๊ฝ๋ฐ์นจ ๊ธธ์ด
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... ๊ฝ๋ฐ์นจ ๋์ด
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... ๊ฝ์ ๊ธธ์ด
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... ๊ฝ์ ๋์ด
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ... ๊ฝ์ ์ข
3levels (์ง๋จ๋ณ์=์์ธํ)
๋ฌธ1) 1,3,5๋ฒ ์นผ๋ผ์ ์ ํํด์ subset ์์ฑ
iris_df = subset(iris, select=c(Sepal.Length, Petal.Width, Species))
str(iris_df)
๋ฌธ2) ๋ฌธ1์ ๊ฒฐ๊ณผ์์ 2๋ฒ ์นผ๋ผ์ ํ๊ท ๊ฐ ์ด์ ์ถ๋ ฅ
mean(iris$Petal.Length) #3.758
iris_df2 = subset(iris_df, subset = Petal.Length >= mean(iris$Petal.Length))
str(iris_df2)
๋ฒ์ฃผํ์ ๋ํ ์ ํ 3๊ฐ์ง ์ถ๋ ฅ
๋ฌธ3) ๋ฌธ1์ ๊ฒฐ๊ณผ์์ Species์นผ๋ผ์ ๋์์ผ๋ก "setosa" ๊ฝ์ ์ข ์ถ๋ ฅ
iris_df3 = subset(iris_df, Species %in% "setosa")
str(iris_df3)
์ฐ์ต๋ฌธ์
01. ๋ณธ๋ฌธ์์ ์์ฑํ titanic ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ํตํด์ “titanic.csv” ํ์ผ๋ก ์ ์ฅํ ํ ํ์ผ์ ๋ถ๋ฌ์ค์์ค.
[๋จ๊ณ 1] 'C:/ITWILL/2_Rwork/output' ํด๋์ 'titanic.csv'๋ก ์ ์ฅํ๋ค.
ํํธ: write.csv() ํจ์ ์ฌ์ฉ
getwd()
setwd("C:/ITWILL/2_Rwork/output")
write.csv(titanic, 'titanic.csv')
[๋จ๊ณ 2] 'titanic.csv' ํ์ผ์ titanicData ๋ณ์๋ก ๊ฐ์ ธ์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ , titanicData์ ๊ด์ธก์น์ ์นผ๋ผ์๋ฅผ ํ์ธํ๋ค.
ํํธ: str() ํจ์ ์ฌ์ฉ
titanicData = read.csv('titanic.csv')
str(titanicData)
[๋จ๊ณ 3] 1๋ฒ, 3๋ฒ ์นผ๋ผ์ ์ ์ธํ ๋๋จธ์ง ์นผ๋ผ์ ๋์์ผ๋ก ์์ 6๊ฐ์ ๊ด์ธก์น๋ฅผ ํ์ธํ๋ค.
titanicData[1:6, -c(1,3)] #ํ์ ๋ํ ์์ธ, (์ด์ ๋ํ ์์ธ)
02. R์์ ์ ๊ณตํ๋ quakes ๋ฐ์ดํฐ์
์ ๋์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌํ์์ค
data("quakes")
quakes # ์ง์ง ์ง์์ง ๋ฐ์ดํฐ ์
str(quakes)
# 'data.frame': 1000 obs. of 5 variables:
๋จ๊ณ1) ํ์ฌ ๊ฒฝ๋ก์ row.names, quote ์์ด "quakes_df.csv" ํ์ผ๋ช
์ผ๋ก ์ ์ฅ
write.csv(quakes, "quakes_df.csv", row.names=FALSE, quote=FALSE) #outputํด๋์ quakes_df.csv๋ช
์ผ๋ก ์ ์ฅ๋จ
๋จ๊ณ2) quakes_data๋ก ํ์ผ ์ฝ๊ธฐ
quakes_data = read.csv("quakes_df.csv")
quakes_data
๋จ๊ณ3) mag ๋ณ์๋ฅผ ๋์์ผ๋ก ํ๊ท ๊ณ์ฐํ๊ธฐ
mag = quakes_data$mag #์ปฌ๋ผ๋ถ๋ฌ์ฌ ๋๋ $. ๋ฒกํฐ ํ์์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์์.
mean(mag)
03. R์์ ์ ๊ณตํ๋ CO2 ๋ฐ์ดํฐ์
์ ๋์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํ์ผ๋ก ์ ์ฅํ์์ค.
ํํธ : subset() ํจ์ ์ด์ฉ
data("CO2")
CO2
๋จ๊ณ1) Treatment ์นผ๋ผ ๊ฐ์ด 'nonchilled'์ธ ๊ฒฝ์ฐ๋ง 'CO2_df1.csv' ํ์ผ๋ก ์ ์ฅํ๊ธฐ
df1 = subset(CO2, Treatment=='nonchilled') #=๋ <-, ==๋ ๋น๊ต์ฐ์ฐ์
CO2
str(CO2)
* treatment์นผ๋ผ์ ์ธ๋ฒ์งธ. ๋ ๊ฐ์ ๋ฒ์ฃผํ ๊ฐ์ ๊ฐ์ง๊ณ ์์(=levels)
๋จ๊ณ2) Treatment ์นผ๋ผ ๊ฐ์ด 'chilled'์ธ ๊ฒฝ์ฐ๋ง 'CO2_df2.csv' ํ์ผ๋ก ์ ์ฅ
df = subset(CO2, Treatment=='chilled')
write.csv(df2, "CO2_df2.csv", row.names = F)
'๋ฐ์ดํฐ๋ถ์๊ฐ ๊ณผ์ > R' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DAY14. R EDA, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ (0) | 2021.10.01 |
---|---|
DAY13. R Basic (๋ฐ์ดํฐ ์๊ฐํ) (0) | 2021.09.30 |
DAY12. R Basic (์ ์ด๋ฌธ๊ณผ ํจ์) (0) | 2021.09.29 |
DAY10. R Basic (์๋ฃ ๊ตฌ์กฐ ์ ํ) (0) | 2021.09.27 |
DAY09. R Basic (ํจํค์ง์ ์ธ์ , ๋ณ์์ ์๋ฃํ) (0) | 2021.09.24 |