(编辑处理的相对尺度日期的重新调整)
有关使用reshape
什么?
这是输入数据:
> zz <- "Date UserID Var1 Var2
+ 2013-01 1 2 3
+ 2013-02 1 2 1
+ 2013-02 2 2 1"
> Data <- read.table(text=zz, header = TRUE)
这是重塑:
Data2 = reshape(Data[c(1,2,4)],direction='wide',timevar='Date',idvar='UserID')
在所得:
> Data2
UserID Var2.2013-01 Var2.2013-02
1 1 3 1
3 2 NA 1
(注意c(1,2,4)
是指对应的式柱号码到Date
,UserID
和Var2
)
最后,以获得所需的输出,你可以简单地移动NA
到每一行的末尾:
t(sapply(1:nrow(Data2), function(x) c(Data2[x,!is.na(Data2[x,])],rep(NA,sum(is.na(Data2[x,]))))))
,导致:
UserID Var2.2013-01 Var2.2013-02
[1,] 1 3 1
[2,] 2 1 NA
注意,这里的列名不再是当前的。此外,您可能在矩阵的右侧有只包含NA的列......我会让您处理这些小细节。
你想查找有关变量的统计信息,或者只是重新设计一个变量的数据(这就是你的例子所做的)? – rawr
@rawr - 我编辑澄清。希望有帮助。我想查找统计数据,但我想先重塑。 – Jeremy
@Jealie - 类似的东西,但数据全部按ID分组,而不是一次只显示一个ID。 – Jeremy