🤖 Education/2019AI개발자양성과정(과기부)
[R] R데이터프로세싱
데이터분석가SIENNA
2023. 1. 30. 14:15
#matrix
matrix(c(1,2,3,4,5,6,7,8,9,10), nrow=2)
matrix(c(1,2,3,4,5,6,7,8,9,10), nrow=5)
m <- matrix(1:9, nrow=3, dimnames=list(c("a","b","c"), c("A", "B", "C")))
m
rownames(m)
colnames(m)
m[1:2,]
m[,1:2]
m[1,1]
m[3,3]
m[-1,]
m[,-2]
m[m[,3]>8,] #m이라는 매트릭스의 3열의 데이터 중 8보다 큰 행의 데이터
#trnaspose
m
t(m)
nrow(m)
NROW(m)
ncol(m)
NCOL(m)
dim(m)
#matrix.solve(a,b)
#행렬연산
x <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3)
x
x + x
x - x
x %*% x
#solve : 매트릭스를 만족하는 조건값을 구할때
x <- matrix(c(1,2,3,4), nrow=2)
solve(x)
x %*% solve(x)
#array
array(1:12, dim = c(3,4))
x <- array(1:12, dim = c(2,2,3))
x
x[,,2]
#data.frame
df <- data.frame(x = c(1,2,3,4),
y = c("a","b","c","d"),
z = c("A","B","C","D"))
df
str(df)
x <- df[1:2]
x
colnames(x)
rownames(x)
df[-1,]
df[,-2]
df[-1,-1]
df[, names(df) %in% c("x", "y")]
#조건을 만족하는 특정 원소 선택
ex <- c(1,3,7,NA,12)
ex[ex < 10]
ex[ex%%2 ==0]
ex[is.na(ex)]
ex[!is.na(ex)]
ex[ex%%2 ==0 & !is.na(ex)]
name <- c("kim", "lee", "park")
age <- c(10,20,30)
gender <- factor(c("M","F","M"))
df <- data.frame(name,age,gender)
df[df$gender == "M",]
df[df$age < 25 & df$gender == "M",] #행에 대한 각각의 조건
#function1
f <- function(df2) {
df2$a <- c(1,2,3,4)
return(df2)
}
df <- data.frame(a=c(4,5,6,7))
df
df <- f(df)
df
#function2
f <- function(df2) {
df2$a <- c(1,2,3,4)
return(df2)
}
df <- data.frame(a=c(4,5,6,7))
df <- f(df)
df
#멀으갰음,,1도몰으갰음;ㅅ;ㅅ;ㅅ;ㅅ;;ㅅ;
sum1 <- function(v1) {
if (length(v1) != 1) {
print("parameter's length should be 1")
return()
}
sum(seq(1,v1,1))
}
a <- 10
b <- sum1(a)
b
#조건문
a <- 7
if (a > 8) {
print("a는 8보다 크다")
} else if (a>5 & a<=8) {
print("a는 5보다 크고 8보다 작다")
} else {
print("a는 5보다 작다")
}
x <- c(1,2,3,4,5)
ifelse(x%%2 ==0, TRUE, FALSE)
#반복문
for(i in (1:10)) {
print(i)
}
i <- 1
while(i <10){
print(i)
i <- i + 1
}
i <- 1
repeat{
print(i)
if(i>=10){
break
}
i <- i + 1
}
#file read
path <- "C:\\Users\\user\\Desktop\\data\\usedcars.csv"
f <- read.csv(path, stringsAsFactors=, encoding="UTF-8", header=T)
f
str(f) #카테고리컬 데이터로 읽기
path <- "C:\\Users\\user\\Desktop\\data\\test.txt"
f <- read.table(path, stringsAsFactors=, encoding="UTF-8", header=T)
f
str(f)
path <- "C:\\Users\\user\\Desktop\\data\\test.txt"
f <- read.table(path)#있는 그대로 읽어와 컬럼의 데이타도 요소화해벌임,,
f
str(f)
path <- "C:\\Users\\user\\Desktop\\data\\test.txt"
f <- read.table(path, header=T, row.names="no")
f
str(f)
path <- "C:\\Users\\user\\Desktop\\data\\workshop2.txt"
f <- read.table(path, header=T, stringsAsFactor=F)#name은 factor가 아니므로!
f
str(f)
#데이터확인
head(iris)
str(iris)
#데이터병합
#rbing/cbind
rbind(c(1,2,3),c(4,5,6))
cbind(c(1,2,3),c(4,5,6))
x <- data.frame(id=c(1,2), names=c("a","b"), stringsAsFactors = F)
x
str(x)
y <- rbind(x,c(3,"c"))
y
str(y) #3이 "c"때문에 문자형으로 바뀌어버림,,,이거슬 방지하려면 c를 list로 바꾸어준당...
y <- rbind(x,list(3,"c"))
y
str(y)
x <- data.frame(id=c(1,2), names=c("a","b"))
x
str(x)
cbind(c(1,2,3), c(4,5,6))
#merge
x <- data.frame(name=c("a","b","c"), math=c(1,2,3))
y <- data.frame(name=c("c","b","a"), eng=c(4,5,6))
merge(x,y)
cbind(x,y)
x <- data.frame(name=c("a","b","c"), math=c(1,2,3))
y <- data.frame(name=c("c","b","a"), eng=c(4,5,6))
merge(x,y,all=TRUE)
#split
split(iris, iris$Species)
iris_list <- split(iris, iris$Species)
str(iris)
iris_list$setosa