관찰 그룹화 및 Z 점수 계산 [중복]
저는 현재 기후 데이터 세트를 작업 중이며 해결할 수없는 두 가지 주요 질문이 있습니다.
R = https://ufile.io/xnvy4coh
데이터 = https://ufile.io/u2dszh4x
시즌 필드를 해당 기둥 앞에 녹여서 이와 같은 결과를 얻을 수있는 방법이 있습니까? https://imgur.com/dF3gNY0봄과 여름의 다른 모든 매개 변수에 대한 ppt와 평균의 합계를 포함하는 "grow"라는 시즌 열에 새 클래스를 생성하고 싶습니다. 나는 원래 prism_grouped를 1 년 동안 열과 서로 열과 개별 관찰 즉 (spring_ppt_mm, summer_ppt_mm, fall_ppt_mm, winter_ppt_mm, ...)로 만들고 거기에서 mutate를 사용하여 계산했지만 녹아 내고 데이터를 수집하면 항상 저를 괴롭 혔습니다. 결과.
각 시즌의 z 점수를 계산하려고 할 때이 방법을 사용할 때 출력 데이터베이스에 NaN이 채워집니다.
스프링 <-프리즘 _ 그룹 %> %
filter (시즌 == "봄") %> %
mutate (z_ppt_mm = scale (ppt_mm)) %> %
mutate (z_tmin_c = scale (tmin_c)) %> %
mutate (z_tmean_c = scale (tmean_c)) %> %
mutate (z_tmax_c = scale (tmax_c)) %> %
mutate (z_vdpmin_hpa = scale (vdpmin_hpa)) %> %
mutate (z_vdpmax_hpa = scale (vdpmax_hpa))
그러나 다음을 수행하면 유효한 결과를 얻습니다.
spring <- filter(prism_grouped,season == "spring")
z_spr_ppt <- scale(spring$ppt_mm) z_spr_tmin <- scale(spring$tmin_c)
z_spr_tmean <- scale(spring$tmean_c) z_spr_tmax <- scale(spring$tmax_c)
z_spr_vdpmin <- scale(spring$vdpmin_hpa) z_spr_vdpmax <- scale(spring$vdpmax_hpa)
현재 두 번째 방법으로 모든 작업을 수행하고 있지만 작업중인 변수의 수를 줄이려고 노력하고 있으며 데이터 프레임에 포함하는 것을 선호합니다. 어떤 제안이라도 감사하겠습니다!
답변
나는 첫 번째 질문을 이해하지 못하지만 두 번째 질문의 경우 여러 열에 동일한 기능을 적용하기 위해 across
(또는 mutate_at
old에서 dplyr
) 사용할 수 있습니다 . 다음과 같은 것 :
library(dplyr)
spring <- prism_grouped %>%
ungroup %>%
filter(season == "spring") %>%
mutate(across(ppt_mm:vdpmax_hpa, ~as.numeric(scale(.)), .names = 'z_{col}'))