R中的复杂数据重塑

用户3904098

我有一个包含3列的数据框(如下所示):

df <- data.frame(
  id = c(1,1,1,2,2,2),
  Year = c(2007, 2008, 2009, 2007, 2008, 2009),
  A = c(5, 2, 3, 7, 5, 6),
  B = c(10, 0, 50, 13, 17, 17) 
)
df  

我想要这个:

df_needed <- data.frame(
  id= c(1, 2),
  A_2007 = c(5, 7),
  B_2007 = c(10, 13),
  A_2008 = c(2, 5),
  B_2008 = c(0, 17),
  A_2009 = c(3, 6),
  B_2009 = c(50, 17)
)
df_needed

我熟悉reshapetidyR,但我不认为他们可以管理这种转变。

是否有适当的方法做到这一点,或者我需要使用自定义函数来做到这一点?

编辑:已对本示例进行了编辑,以改进最终数据集中包含1条以上记录的示例。

阿克伦

尝试

library(dplyr)
library(tidyr) 
gather(df, Var, Val, -Year) %>% 
        unite(YearVar, Var, Year)  %>% 
        mutate(indx=1) %>% 
        spread(YearVar, Val)%>%
        select(-indx)
 #  A_2007 A_2008 A_2009 B_2007 B_2008 B_2009
 #1      5      2      3     10      0     50

更新

对于编辑,您可以在 gather

gather(df, Var, Val, A:B) %>% 
         unite(YearVar, Var, Year) %>% 
         spread(YearVar, Val)
#   id A_2007 A_2008 A_2009 B_2007 B_2008 B_2009
#1  1      5      2      3     10      0     50
#2  2      7      5      6     13     17     17

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R复杂数据帧重塑

来自分类Dev

在 R 中重塑复杂的数据集

来自分类Dev

Clojure中的复杂数据处理

来自分类Dev

Haskell中的复杂数据结构

来自分类Dev

在复杂数据中按顺序分组

来自分类Dev

GridView控件中的复杂数据绑定

来自分类Dev

如何在R中存储“复杂”数据结构(而不是“复杂数字”)

来自分类Dev

存储复杂数据

来自分类Dev

在R中寻找数据转换解决方案(在复杂数据上广播)

来自分类Dev

在R中多个嵌套列表中的复杂数据框架内的子集列

来自分类Dev

Oracle中类似查询的复杂数据透视

来自分类Dev

从.mat文件中以numpy数组导入复杂数据

来自分类Dev

在Haskell中以通用方式扩展复杂数据类型

来自分类Dev

如何解析Pig中的复杂数据类型

来自分类Dev

如何从WebAPI中的[FromBody]属性获取复杂数据

来自分类Dev

HyperLedger Fabric中的复杂数据类型

来自分类Dev

Pig中复杂数据类型的问题

来自分类Dev

如何使用PHP读取array / JSON中的复杂数据?

来自分类Dev

使用 Java Streams 在复杂数据结构中搜索

来自分类Dev

Firestore 中的复杂数据库建模

来自分类Dev

子集复杂数据集

来自分类Dev

MySQL复杂数据问题

来自分类Dev

构建复杂数据类

来自分类Dev

重塑R中的数据矩阵

来自分类Dev

汇总/重塑R中的数据

来自分类Dev

重塑R中的数据帧?

来自分类Dev

在R中重塑数据框

来自分类Dev

在R中重塑数据帧

来自分类Dev

汇总/重塑R中的数据