맛동산

pylr패키지 ddply 본문

머신러닝/R

pylr패키지 ddply

오지고지리고알파고포켓몬고 2017. 3. 26. 21:42

install.packages('plyr')

library(plyr)


# 1) apply(matrix/data.frame, 1(행)/2(열), FUNC)

apply(iris[-5], 2, mean) # 마지막건 factor형이라 뺌 # 4개 컬럼당 평균구


# 2) tapply(dataset, 집단변수(범주형변수-성별같은거,iris에선 species로 묶는것처럼), FUNC)

tapply(iris$Sepal.Length, iris$Species, mean) # tapply(iris[-5], iris$Species, mean) 요렇게는 안되네

tapply(iris$Sepal.Width, iris$Species, sum) # 한번에 한컬럼씩만되는군



# 2. ddply() : plyr 패키지 제공 함수 # 이친구가 tapply와 구조가 유사, 하지만 한번에할 수 있다!

# 형식) ddply(dataframe, .(집단변수), 요약집계, 변수명=함수(변수))


# 꽃의 종류별(Species)로 꽃받침 길이(Sepal.Length)의 평균 계산

dp <- ddply(iris, .(Species), summarise,  # summarise가 어떻게 보이는건데

            avg = mean(Sepal.Length),

            tot = sum(Sepal.Length),

            var = var(Sepal.Length),

            sd = sd(Sepal.Length))

dp


dp2 <- ddply(iris, .(Species), summarise,  # summarise가 어떻게 보이는건데

            a1 = mean(Sepal.Length),

            a2 = mean(Sepal.Width),

            a3 = mean(Petal.Length),

            a4 = mean(Petal.Width))

dp2

'머신러닝 > R' 카테고리의 다른 글

함수 사용시 결측치 처리(na.omit, ifelse)  (0) 2017.03.26
dplyr패키지 - dataframe 핸들링하기 좋을듯  (0) 2017.03.26
plyr패키지 join  (0) 2017.03.26
seq, sample, rowMeans, rowSums  (0) 2017.03.26
논리연산자, ifelse, table  (0) 2017.03.26
Comments