r - 如何通过在 R 中分离年份列来重建我的数据集
问题描述
我有这个数据集
但我想有一个这样的数据集使用 R
解决方案
我们可以pivot_longer
为此使用
library(tidyr)
library(dplyr)
pivot_longer(df1, cols = starts_with("GDP"), names_to = c(".value", "Year"),
names_pattern = "([^\\d]+)(\\d+)") %>%
rename(`Growth rate` = GDP_GR)
-输出
# A tibble: 4 × 4
`Country Name` `Country Code` Year `Growth rate`
<chr> <chr> <chr> <dbl>
1 Afghanistan AFG 2011 NA
2 Afghanistan AFG 2012 1234143668
3 Albania ALB 2011 2703864872
4 Albania ALB 2012 -4429023858
或无rename
步
pivot_longer(df1, cols = starts_with("GDP"), names_to = "Year",
values_to = "Growth rate", names_pattern = "\\D+(\\d+)")
# A tibble: 4 × 4
`Country Name` `Country Code` Year `Growth rate`
<chr> <chr> <chr> <dbl>
1 Afghanistan AFG 2011 NA
2 Afghanistan AFG 2012 1234143668
3 Albania ALB 2011 2703864872
4 Albania ALB 2012 -4429023858
数据
df1 <- structure(list(`Country Name` = c("Afghanistan", "Albania"),
`Country Code` = c("AFG", "ALB"), GDP_GR2011 = c(NA, 2703864872
), GDP_GR2012 = c(1234143668, -4429023858)),
class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -2L))
推荐阅读
- c# - 从 C# 连接到 Redshift 集群时,ServerVersion 引发了类型为 system.invalidoperation 异常的错误
- ios - 如何在关闭时调用点击手势(iOS)
- powershell - 如何使用 PowerShell GUI 在用户 jpegPhoto 和 thumbnailPhoto 的属性中插入图片?
- django - Dhango 1.11 如何过滤一个过滤器的内容?
- javascript - 无法在打字稿中调用 svgdotjs rect 方法
- ios - 在 WhatsApp 上快速共享图像和文本
- php - 有时谷歌分析增强电子商务交易没有更新
- c# - 无法使用 C# Interop.Outlook 访问不同的收件人帐户文件夹
- excel - 如何使用重新格式化用户粘贴的文本块的长 For Next 循环来加速我的 VBA 代码?
- angular - 将 ngfor 与另一个 ngfor 中的动态可观察对象一起使用