728x90
728x90
안녕하세요~
R을 이용해서 Data table에 있는 Data의 통계값 column을 입력하는 방법을 알아보려고 합니다.
Data는 R의 기본 Data set인 iris를 사용하도록 하겠습니다.
먼저 통계값 중 Species별로 max값을 구해 column을 추가해보도록 하겠습니다.
여기서는 group_by를이용해 data table의 통계값을 구하고 inner join을 하는 방법과
data table을 이용해 추가하는 방법을 알아보려고 합니다.
data table을 이용하면 더욱 간단한 코드로 통계값을 column으로 추가할 수 있습니다.
head(iris)
irisgroup <- iris %>%
group_by(Species) %>%
summarise(Sepal.Length_max=max(Sepal.Length),
Sepal.width_max=max(Sepal.Width),
Petal.Length_max=max(Petal.Length),
Petal.Width_max=max(Petal.Width))
이렇게 통계값을 구햇으면 inner_join()을 이용해 통계값을 추가해 보겠습니다.
test <- inner_join(iris,irisgroup,by="Species")
test[!duplicated(test$Species),]
위의 test를 보기엔 커서 대표행을 골라서 보면 max값이 제대로 들어갔음을 알 수 있습니다.
이번엔 data table을 이용해 추가하는 방법을 보겠습니다.
iris는 data frame이기 때문에 data.table package에 있는 as.data.table을 이용해 data table로 변경해주겠습니다.
install.packages("data.table")
library(data.table)
iristest <- as.data.table(iris)
str(iristest)
a <- iristest[,c("Sepal.Length_max"):=max(Sepal.Length),by=Species]
위와 같은 코드를 사용하면 간단하게 통계값을 추가할 수 있습니다.
위는 column하나를 추가한것이고 한번에 다수개의 column을 추가해 보겠습니다.
c <-
iristest[,c("Sepal.Length_max","Sepal.Width_max","Petal.Length_max","Petal.Width_max"):=
list(max(Sepal.Length),max(Sepal.Width),max(Petal.Length),max(Petal.Width)),
by=Species]
위와 같은 코드를 사용하면 한번에 여러개의 column을 추가할 수 있습니다.
하나의 column을 추가할떄와 달라진 점은 list를 이용해 통계값을 묶어 주었다는 것입니다.
728x90
728x90
'R' 카테고리의 다른 글
R ) list 자료형 in r (0) | 2022.04.01 |
---|---|
R ) data에서 결측치 처리하기 mean, max, min, median 등등 in r (0) | 2022.03.31 |
R ) 논리 연산자 in r ( &, |, ! ) in r (0) | 2021.09.30 |
R ) 비교 연산자 알아보기 in r >, >=, <, <=, ==, != in r (0) | 2021.09.27 |
R ) 수학연산자 +, -, *, /, %%, %/%, ^ 사용 덧셈 뺄셈 곱셈 나눗셈 나머지 몫 거듭제곱 in r (0) | 2021.09.16 |
댓글