我有一个包含日期,组(因子)和值列的数据框。
Date Group Value
01/01/2015 A 1
01/01/2015 B 5
01/01/2015 C 4
01/02/2015 A 10
01/02/2015 B 1
01/03/2015 C 5
某些群组没有为日期输入的值。在上面的示例中,组C没有01/02/2015的值。 A& B没有01/03/2015的值。
我想用零值填写这些缺失的行,这样(顺序并不重要):
Date Group Value
01/01/2015 A 1
01/01/2015 B 5
01/01/2015 C 4
01/02/2015 A 10
01/02/2015 B 1
01/03/2015 C 5
01/03/2015 A 0
01/03/2015 B 0
01/02/2015 C 0
有谁知道实现这一目标的简单方法?感谢。
答案 0 :(得分:2)
试试这个单行。它将数据从长格式转换为宽格式,然后再转换为长格式。没有包使用。
as.data.frame(xtabs(Value ~ Group + Date, DF), responseName = "Value")
,并提供:
Group Date Value
1 A 01/01/2015 1
2 B 01/01/2015 5
3 C 01/01/2015 4
4 A 01/02/2015 10
5 B 01/02/2015 1
6 C 01/02/2015 0
7 A 01/03/2015 0
8 B 01/03/2015 0
9 C 01/03/2015 5
注意:可重复形式的输入是:
Lines <- "Date Group Value
01/01/2015 A 1
01/01/2015 B 5
01/01/2015 C 4
01/02/2015 A 10
01/02/2015 B 1
01/03/2015 C 5"
DF <- read.table(text = Lines, header = TRUE)