通过将行折叠成列来扩展以获得高数据

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

我试图通过将多个列合并到ID上来打开高数据集。

我一直在使用传播,但目前我只是得到了传播创建的列,但仍然有与以前相同的行数。我目前有:

  ID Code_Type Code
   1   10        4
   1    9        5 
   2    10       6
   2    9        7

我想要:

ID  Code_Type_10  Code_type_9
1       4              5
2       6              7

这是我目前的代码

t <- spread(df, Code_Type, Code)

但是,当我这样做时,它会创建列,但不会压缩行。

r tidyr
2个回答
1
投票

在MDEWITT的条目中添加一点

df <- data.frame("ID" = c(1,1,2,2), 
                 "Code_Type" = c(10,9,10,9), 
                 "Code" = c(4,5,6,7))

t <- tidyr::spread(df, Code_Type, Code)
names(t)[c(2,3)] <- paste0(rep("Code_Type_", 2), names(t)[c(2,3)])

df %>% 
  mutate(Code_Type = paste0("Code_Type_", Code_Type)) %>% 
  spread(Code_Type, Code)

> t
  ID Code_Type_9 Code_Type_10
1  1           5            4
2  2           7            6

0
投票

这是你在想什么?

df %>% 
  mutate(Code_Type = paste0("Code_Type_", Code_Type)) %>% 
  spread(Code_Type, Code)

我想你只需要添加mutate步骤就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.