繁体   English   中英

重塑R中数据框的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM