在R中创建面板数据的比例变量(stateyear)

问题描述 投票:-2回答:1

我有1990年以来各州人口中种族的人口普查数据。我想在R studio中做两件事,在年州一级。1.将所有的西班牙裔拉丁人中的任何一个种族群体汇总成一个全新的种族群体 "HispanicLatino",2.从总人口中创建每个种族群体的百分比。例如,我想知道1990年阿拉巴马州非西班牙裔黑人的比例。这张图显示了我的数据是什么样子的

r aggregate panel data-cleaning summarize
1个回答
0
投票

我不是100%清楚什么,你需要你的最终结果为#1是......但如果你最终需要的是 "种族 "列表示 "西班牙裔或拉丁裔",你可以做。

Data$Race[(Data$Ethnicity == "Hispanic or Latino")] <- "Hispanic or Latino"

你也可以把 "种族 "和 "民族 "这两栏的内容结合起来 就像这样

Data$Race[(Data$Ethnicity == "Hispanic or Latino")]<- paste(Data$Race[((Data$Ethnicity == "Hispanic or Latino")],Data$Ethnicity[(Data$Ethnicity == "Hispanic or Latino")])

对于2号...

#Load library
library(dplyr)
#Make test data
Data <- data.frame(Year = c(1990,1990,1991,1991),
                   State = c("AL", "MO", "AL", "MO"),
                   Population = c(1,2,2,3),
                   Race = c("Black", "Hispanic", "Hispanic", "Black"))
#Calculate total population
total_pop <- sum(Data$Population)
# Group by and calculate statistic, save to new 'df' dataframe
df <- Data %>%
  group_by(Year, State, Race) %>%
  summarise(percent = sum(Population)/total_pop)
© www.soinside.com 2019 - 2024. All rights reserved.