如何在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
我有一个很长的数据列表,类似于下面的列表:
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