如何在R中重新排列数据

How to rearrange a data in R

我有一个很长的数据列表,类似于下面的列表:

set.seed(9)
part_number<-sample(1:5,5,replace=TRUE)
Type<-sample( c("A","B","C"),5, replace=TRUE)
rank<-sample(1:20,5,replace=TRUE)
data<-data.frame(cbind(part_number,Type,rank))
data

     part_number Type rank
1           2    A    3
2           1    B    1
3           2    B   18
4           2    C    7
5           3    C   10

I want to rearrange the data in the following way: 

     part_number A  B   C
1                   1
2                3  18  7      
3                      10          

我想我需要使用重塑库。但我不确定。

您将着手执行以下操作:

data <- reshape(data, idvar = "part_number", timevar = "Type", direction = "wide")
data

为了完全按照您的要求格式化,我会添加,

library(tidyverse)
data %>%
  arrange(part_number) %>%
  dplyr::select(part_number, A = rank.A, B = rank.B, C = rank.C)

如果您有更多列要重命名,我会使用 gsub 函数按模式重命名。另外,由于现在行名比较乱,

rownames(data) <- c()

如果这不起作用或者这不是您想要的,请告诉我。

libary(tidyr)
data %>% spread(Type,rank)
#   part_number    A    B    C
# 1           1 <NA>    1 <NA>
# 2           2    3   18    7
# 3           3 <NA> <NA>   10