% 점유율을 계산하고 mutate를 사용하여 새 열을 만들고 싶습니다. 다음과 같은 데이터가 있습니다 :
country, metric, segment, value1990, value2000, value2010
canada, abc, rural, 10, 15, 16
canada, abc, urban, 12, 12, 18
canada, abc, total, 22, 27, 34
canada, xyz, rural, 6, 9, 10
canada, xyc, urban, 7, 8, 8
canada, xyc, total, 13, 17, 18
canada, population, rural, 80, 86, 95
canada, population, urban, 102, 110, 121
canada, population, total, 182, 196, 216
데이터 프레임은 여러 국가 및 몇 년에 걸친 데이터로 구성됩니다. 다음 값으로 새 열을 만들고 싶습니다
country, metric, segment, value, percent1990, percent2000, percent2010
canada, abc, rural, 10, 15, 16, 12.5%, 17.4%, 16.8%
canada, abc, urban, 12, 12, 18, 11.7%, 10.9%, 14.8%
canada, abc, total, 22, 27, 34, 12.1%, 13.7%, 15.7%
canada, xyz, rural, 6, 9, 10, 7.5%, 10.4%, 10.5%
canada, xyc, urban, 7, 8, 8, 6.8%, 7.2%, 6.6%
canada, xyc, total, 13, 17, 18, 7.22%, 8.6%, 8.3%
canada, population, rural, 80, 86, 95, 100%, 100%, 100%
canada, population, urban, 102, 110, 121, 100%, 100%, 100%
canada, population, total, 182, 196, 216, 100%, 100%, 100%
필자는 본질적으로 여러 해에 걸쳐 농촌/도시/총계에 따라 인구의 가치 변수 비율을 계산하려고합니다.
예 :
(1 행)
percent_share = (10/80)*100 = 12.5%
(2 행)
percent_share = (10/102)*100 = 11.76%
(행 3)
percent_share = (10/182)*100 = 12.09%
나는
group_by
를 넘어 갈 수 없어
필요한 기능을 입력하는 방법을 확인하기위한 체인 연결
df = df %>%
group_by (country, metric) %>%
mutate(...)
-
답변 # 1
-
답변 # 2
segment
를 기준으로 그룹화 할 수도 있습니다.max(value
로 나눕니다. ), 인구 값이 가장 커야하기 때문에 :df %>% group_by(country, segment) %>% mutate(percent_share = value / max(value)) # A tibble: 9 x 5 # Groups: segment [3] country metric segment value percent_share <chr> <chr> <chr> <dbl> <dbl> 1 canada abc rural 10 0.125 2 canada abc urban 12 0.118 3 canada abc total 22 0.121 4 canada xyz rural 6 0.075 5 canada xyc urban 7 0.0686 6 canada xyc total 13 0.0714 7 canada population rural 80 1 8 canada population urban 102 1 9 canada population total 182 1
관련 자료
- sql server - SQL에서 각 필드의 값 수를 개별적으로 계산
- r - 다중 변수에 대한 생존 p 값 계산
- angular7 - 앵귤러 7 반응 형 배열 - 양식 값 계산
- powerbi - 필터로 변경되는 백분율을 계산하는 Power BI 측정
- 테이블 값을 동적으로 계산하고 SQL Server의 매개 변수에서 최소 및 최대 대상을 찾는 방법
- sql server - SQL을 사용하여 백분율 계산
- data visualization - tableau - 측정 값의 개수와 백분율
- templates - C ++의 여러 값에 대해 동일한 지 확인
- 동일한 열의 값을 SQL Server의 다른 열과 비교
- sql - Postgres에서 현재 행과 이전 행 사이의 변경 비율을 어떻게 계산할 수 있습니까?
- javascript - 백분율 값을 허용하는 정규식 유효성 검사
- 범위에 대해 값 목록을 확인하고 다른 열에 설정된 값을 반환하는 Excel VBA
- tsql - 마지막 값 (SQL)을 포함하지 않고 값의 평균을 계산하는 방법은 무엇입니까?
- r - 데이터 프레임의 다른 열에 대해 한 열의 통계를 계산하는 방법은 무엇입니까?
- postgresql - 마감 퍼센트를 계산하는 창 함수
- mysql - 고유 한 각 열 값을 기준으로 백분율 계산
- python - 값을 계산하고 새 열에 추가하기 위해 데이터 프레임에서 행 반복
- sql - mysql에서 여러 조건부 값의 합계를 계산하는 방법
- angular - ng2-chart - 차트 안에 백분율 값을 표시하는 방법은 무엇입니까?
수정 : 연도를 포함하는 새로운 질문 데이터
연도와 총 인구를 새로운 열로 옮기면 더 쉬울 것입니다. 한 가지 방법이 있습니다.
예제 데이터가
그런 다음df1
라는 데이터 프레임에 있다고 가정 : 첫 번째gather
몇 년.metric
에 대한 필터 ==population
원래 데이터에 다시 참여하십시오.결과 :
그런 다음 돌연변이를 추가하십시오 :
결과 :