我正在尝试处理所有用于操作数据结构的各种工具 - 我已经研究过apply,sapply,tapply,reshape等等。我仍然不确定在每种情况下使用哪种工具
对于我目前的问题,我的数据如下:
ID T1Measure T2Measure ...
1 1 1
2 1 2
...
其中T1Measure表示时间1处因子/分类变量的度量,T1Measure是同一用户在时间2等的相同变量的度量。
我的目标是生成该度量分布随时间变化的图表(每个因子的频率和每个因子的比例)。
我知道这很简单,但我很难绕过如何得到我想要的东西。
我相信对于ggplot,我想要的是:
FactorID variable value
1 T1 2
2 T1 0
1 T2 1
2 T2 1
...
我想知道我应该考虑使用哪个软件包,但更一般地说,这是一种思考数据结构的好方法,以及如何识别操作它们的最佳方法。
答案 0 :(得分:2)
我不确定我会在这里使用任何apply语句,但reshape2
包会有帮助。
#sample data
dd<-data.frame(
ID=c(1,2,3,4,5,6),
T1=c(1,2,2,1,1,2),
T2=c(1,1,2,1,1,2),
T3=c(2,1,1,2,1,1)
)
library(reshape2)
mm<-melt(dd,id.vars="ID", variable.name="Measure", value.name="FactorID")
#option 1 (useful for counts of discrete values)
as.data.frame(with(mm, table(FactorID, Measure))
#option 2 (useful for collapsing data)
aggregate(ID~FactorID+Measure, mm, FUN=length)
我使用标准基本功能来折叠数据并进行计数。我倾向于将reshape2
的语法转换为基础reshape()
函数,但也可以使用。