[英]Reshape the Columns of Data Frame in R
我有一个数据框(例如)
Week Bags
4 5
6 3
10 5
13 7
18 5
23 1
30 9
31 9
32 4
33 7
35 1
38 2
42 2
47 2
“周”列表示一年中的周数,“袋”表示小公司使用的袋数。 我希望以Week Bags 1 0 2 0 3 0 4 5 5 0 6 3 7 0 8 0 9 0 10 5
等形式显示数据框,以便绘制每周包数变化。 我敢肯定这是一个很愚蠢的问题,但是我找不到任何办法。 请朝这个方向提供帮助。
您可以创建另一个数据集
df2 <- data.frame(Week= 1:max(df1$Week))
然后merge
与第一数据集
res<- merge(df1, df2, all=TRUE)
res$Bags[is.na(res$Bags)] <- 0
head(res,10)
# Week Bags
#1 1 0
#2 2 0
#3 3 0
#4 4 5
#5 5 0
#6 6 3
#7 7 0
#8 8 0
#9 9 0
#10 10 5
或使用data.table
library(data.table)
res1 <- setDT(df1, key='Week')[J(Week = 1:max(Week))][is.na(Bags), Bags:=0][]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.