728x90
R 프로그래밍 기초 #2.
1. 슬라이싱
#슬라이싱= 인덱스를 쭉 뽑는다
d <- c(1,2,3,4,"a","b","c","d")
d[1:4]
d[1:8]
d[5:8]
d[5:10] #없는값은 NA로 출력
length(d) #벡터- 길이 측정 가능
∙ 슬라이싱: 인덱스를 뽑는 것
- 없는 값은 NA로 출력
- 길이 측정 가능
2. 벡터 연산
#벡터- 연산 가능
b <- c(1,2,3,4)
b <- b+5
b
b <- b*10
b
#루트
sqrt(b)
#절대값
b <- c(-1, -2, -3, -4)
abs(b)
sqrt() 루트
abs() 절대값
b <- b*1.123
b
round(b, 1) #소숫점 반올림
mean(b) #평균
var(b) #분산
sd(b) #표준편차
min(b) #최소값
max(b) #최대값
median(b) #중앙값
round(a,1) 소숫점 첫째자리 까지 반올림
mean(), var(), sd() 평균, 분산, 표준편차
min(), max(), median() 최소값, 최대값, 중앙값
3. 행렬/배열/리스트/데이터프레임
#행렬(matrix)
matrix(c(1:9), nrow = 3, ncol = 3, byrow = T)
#배열(array); dim(차원)설정 해주어야함
array(c(1:8), dim = c(2,2,2))
#리스트(list); 파이썬 리스트와 조금 다른 형태
#다른것들을 묶을 수 있는 함수
list(name = "Sohyun", height = 167)
#데이터프레임(dataframe)
df <- data.frame(a = c(1, 2, 3, 4),
b = c("a", "b", "c", "d"),
c = c(10, 20, 30, 40))
df
summary(df) #python: describe()
행렬
matrix(값 , nrow = , ncol = , byrow = )
배열
array(값, dim = () )
리스트
list(key = 값, key = 값, … )
데이터프레임
df <- data.frame(a = c(), b = c(), c = c() )
summary(df) : 데이터프레임 안 내용 요약 (파이썬 = describe())
4. 데이터프레임 행∙열 이름 지정
#데이터 프레임 만들어서 행, 열 이름 지정
sales_data <- data.frame(ID = c(1, 2, 3, 4, 5, 6, 7, 8),
화장품 = c(234, 561, 623, 46, 23, 126, 63, 122),
식료품 = c(10, 20, 30, 40, 50, 60, 20, 10),
의류 = c(23, 161, 73, 123, 663, 112, 623, 122),
전자제품 = c(123, 251, 631, 1235, 622, 421, 512, 712))
sales_data <- sales_data[2:5]
sales_data
index = c("2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")
sales_data <- data.frame(data = sales_data, row.names = index)
sales_data
colnames(sales_data) <- c("화장품", "식료품", "의류", "전자제품")
5. 데이터프레임 행∙열 추가
#방법1. '잡화'열 추가하기
sales_data_jobhwa <- c(215, 612, 616, 123, 621, 251, 636, 342)
sales_data_total <- cbind(sales_data, sales_data_jobhwa)
sales_data_total
colnames(sales_data_total) <- c("화장품", "식료품", "의류", "전자제품", "잡화")
sales_data_total
#방법2. '문화'열 추가하기
sales_data_total$문화 <- c(153, 121, 231,235, 122, 221, 112, 212)
sales_data_total
#'2024' 행 추가하기
sales_data_total["2024",] <- c(152, 623, 251, 235,125, 212)
sales_data_total
summary(sales_data_total)
var(sales_data_total$문화)
sd(sales_data_total$문화)
5. 데이터프레임 원하는 값 추출 / 조건에 의한 값 추출
#원하는 값 추출
sales_data_total["2019", "의류"]
sales_data_total[4, 3] # 4행(2019), 3열(의류)
sales_data_total[5:8, 1:3] # 5~8행(2020,2021,2022,2023), 1~3열(화장품,식료품,의류)
#조건에 의한 값 추출_ 화장품 500초과, 식료품 30이상 년도 뽑기
help("subset")
subset1 <- subset(sales_data_total, 화장품>500)
subset1
subset2 <- subset(subset1, 식료품>=30)
subset2
6. 조건문(if-else)
#if, else
sales <- 600
if(sales > 700){
print("S")
}else{
if(sales > 600){
print("A")
}else{
if(sales > 500){
print("B")
}else{
print("c")
}
}
}
#ifelse
sales <- 400
ifelse(sales >= 700, "A", ifelse(sales >= 600, "B",
ifelse(sales >= 500, "C", "D")))
#for
for(i in c(1:10)){
print(i)
}
728x90
반응형