r - 将日期添加到非日期数字变量?
问题描述
我试图展示随着时间的推移两个政党在美国各县的表现及其原因的变化。
我的数据看起来像:
County <- c("Franklin", "Rockham", "Smith", "Udall")
PopulationDensity <- c(63, 1250, 480, 129)
RepublicanPercent2000 <- c(42, 38, 62, 57)
DemocratPercent2000 <- c(54, 57, 34, 41)
RepublicanPercent2004 <- c(47, 35, 67, 44)
DemocratPercent2004 <- c(48, 64, 27, 49)
RepublicanPercent2008 <- c(44, 33, 64, 48)
DemocratPercent2008 <- c(55, 65, 31, 49)
PartisanData <- cbind.data.frame(County, PopulationDensity, RepublicanPercent2000,
DemocratPercent2000, RepublicanPercent2004, DemocratPercent2004,
RepublicanPercent2008, DemocratPercent2008)
重复了数千个县和数十次选举。我如何展示县密度如何随着时间的推移影响民主党和共和党的百分比?我对 R 比较陌生,而且我很困惑。我不太清楚如何概念化解决方案。我所能想到的就是每年为每个县创建一个单独的观察结果,但我什至不确定这是否可以分析密度如何影响选票,我想在创建数据集之前确定这一点这么多观察。我的脑袋疼。请帮忙。
再次感谢!
解决方案
你可以用tidyr::pivot_longer
...
library(tidyr)
PartisanData %>%
pivot_longer(-c(1:2), #don't pivot first two cols
names_sep = "Percent", #split col names at "Percent"...
names_to = c("Party", "Year"), #...into Party and Year columns
values_to = "percent") #name for value column
County PopulationDensity Party Year percent
<fct> <dbl> <chr> <chr> <dbl>
1 Franklin 63 Republican 2000 42
2 Franklin 63 Democrat 2000 54
3 Franklin 63 Republican 2004 47
4 Franklin 63 Democrat 2004 48
5 Franklin 63 Republican 2008 44
6 Franklin 63 Democrat 2008 55
7 Rockham 1250 Republican 2000 38
8 Rockham 1250 Democrat 2000 57
9 Rockham 1250 Republican 2004 35
10 Rockham 1250 Democrat 2004 64
# ... with 14 more rows
然后,它可以更容易地根据需要进行过滤或排序。
推荐阅读
- javascript - Javascript - array.map 返回几个数组,为什么?
- javascript - setInterval 在前 5 次迭代后不起作用
- assembly - Nand2Tetris C 指令组合中的“a”是什么意思?
- unity3d - Unity 3D 工具 - 套件工具未显示
- javascript - 我可以检测到所有图像何时加载,以便将 isLoaded 变量更改为 true 吗?
- python - 从 .ckpt 和 .meta 文件中获取输入和输出节点名称 tensorflow
- django - 使用 pre_save 信号保存模型实例
- node.js - 使用 React+Nodejs 和 Kafka 的社交网络应用架构
- firebase - 刚刚升级 Firebase 功能并出现错误
- bash - 以两个单词为一组剪切文本