【发布时间】:2013-10-10 10:34:29
【问题描述】:
我有一个数据框,其中包含用户列表的两个变量。这些变量代表了每个用户的帖子数和打开的线程数。
我想测试两个变量之间的相关性,因为关键是要测试你发布的越多,你打开的线程就越多 - 加上变量不是正态分布的,我选择了 Spearman 相关性为了评估两个变量之间的关系。
为了做到这一点,我需要根据我的用户发表的帖子和话题的数量来对他们进行排名,而我被困在了这一点上。我的数据集是一个数据框,例如:
> data
USER SUM(POSTS) SUM(THREADS)
u0 2 2
u1 4 2
u10 212 25
u100 7 1
u102 226 23
u103 1 1
u104 3 1
u105 7 1
u107 234 28
到目前为止,我尝试的是通过以下方式排序并找到重复值的平均值:
p<-ave(order(data[,2]), data[,2])
t<-ave(order(data[,3]), data[,3])
如果我的程序正确,我可能不会,我希望线程的排名如下:
4.5 4.5 2 7.5 3 7.5 7.5 7.5 1
但我的代码产生了这个排名:
5.500000 5.500000 6.000000 4.333333 1.000000 4.333333 5.000000 4.333333 9.000000
欢迎任何帮助!
最好, 西蒙娜
【问题讨论】:
-
查看“rank”函数:apply(data, 2, rank) or sappl(data, rank)
标签: r correlation rank