Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 因子变量的绘图频率_R_Apply_Reshape - Fatal编程技术网

R 因子变量的绘图频率

R 因子变量的绘图频率,r,apply,reshape,R,Apply,Reshape,我试图掌握所有用于操纵数据结构的各种工具——我研究了apply、Sappy、tapply、Reformate等,但我仍然不确定在每种情况下使用哪种工具 对于我当前的问题,我有如下数据: ID T1Measure T2Measure ... 1 1 1 2 1 2 ... 其中T1Measure表示时间1时因子/分类变量的度量,T1Measure表示时间2时相同用户的相同变量的度量,以此类推 我的目标是生成该度量的分布

我试图掌握所有用于操纵数据结构的各种工具——我研究了apply、Sappy、tapply、Reformate等,但我仍然不确定在每种情况下使用哪种工具

对于我当前的问题,我有如下数据:

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
...

我想知道我应该使用哪个软件包来实现这一点,但更一般地说,这是一种思考数据结构的好方法,以及如何识别操作数据结构的最佳方式。

我不确定我是否会在这里使用任何apply语句,但
重塑2
软件包会有所帮助

#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)
#示例数据
dd“思考数据结构的好方法”这个更一般的问题确实不适合这个网站,因为这个问题没有明确的答案。最好询问有关编程的具体问题。