你好吗?

我正在努力try reshape R中的数据框.我正在开发一款shiny 的应用程序,我需要以一种方式reshape 我的数据,在列中我有两个不同年份的值,这样我就可以计算变化.其主要思想是用户可以 Select 两个不同的年份并查看不同KPI的变化.

假设这是我的数据:

df <- data.frame(
  PERIOD = c(2020, 2021),
  map = c(1, 2),
  mac = c(1, 4)
)

我希望新数据框有两列(2020年、2021年),并将"map""Mac"作为名为"KPI"的新变量的值.

希望你能帮我,

已经谢谢你了!!

推荐答案

library(tidyr)

pivot_longer(df, cols = -PERIOD, names_to = "kpi") |>
  pivot_wider(names_from = PERIOD, names_prefix = "year")

Output

  kpi   year2020 year2021
1 map          1        2
2 mac          1        4

R相关问答推荐

替换字符的所有实例,但仅限于匹配字符串中

如何使用行政边界形状文件中的人口普查数据调整格栅数据集中的人口数据

Select 与特定列中最大值对应的数据帧行

如何根据包含相同值的某些列获取总额

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

找出疾病消失的受试者

如何自定义Shapviz图?

更改默认系列1以更改名称

为什么在ggplot2中添加geom_text这么慢?

使用tidy—select创建一个新的带有mutate的摘要变量

如何在geom_col中反转条

使用较长的查询提取具有部分匹配的列表中的较短目标,

如何将R中数据帧中的任何Nas替换为最后4个值

用两种 colored颜色 填充方框图

如何将一些单元格的内容随机 Select 到一个数据框中?

在ggplot2上从多个数据框创建复杂的自定义图形

计算来自单独分组的分幅的值的百分位数

如何在AER::ivreg中指定仪器?

如何在内联代码中添加额外的空格(R Markdown)

需要一个函数来在第一行创建一个新变量,然后用新变量替换一个不同的变量(对于多行)