我有一个如下所示的 data.frame:
Name1 Name2 Name3 1 1 1 -1 -1 1 1 -1 1 1 -1 1 -1 -1 1
我想对每一列执行一种秩和检验,以便:
从每列的第一个元素开始(因此对于我的 data.frame 的每个列表)如果第二个元素等于第一个元素(例如:1 和 1),则分数将增加一个单位,因为它们相等,否则分数将减少一个单位(因为它们不相等,例如:1 和 -1)。
例如:列“Name1”
第一个元素 = 1:分数 = 1(起始位置)
第二个元素 = -1:分数 = 0(从前一个分数 (1) 中删除 1 个单位,因为 1 != -1)
第三个元素 = 1 :score = 1(你正在将score初始化为1。每次初始化时,score都是+1)。
第四个元素 = 1:分数 = 2(之前的分数 1 加上 1 个单位,因为第三个和第四个元素相等)
第五个元素 = -1:分数 = 1(之前的分数 2 - 1 个单位,因为第四个元素!= 第五个元素)。
列“Name2”
第一个元素 = 1:分数 = 1(起始位置)
第二个元素 = -1:分数 = 0(从前一个分数 (1) 中删除 1 个单位,因为 1 != -1)
第三个元素 = -1: score = 1(您正在重新初始化分数)
第四元素 = -1:分数 = 2(第三元素等于第四元素,因此前一个分数将增加 1 个单位)
第五元素 = -1:分数 = 3(第四元素等于第五个所以之前的分数,所以 2,将增加 1 个单位)
因此,如果排名中的元素与前一个元素相同或不同,计数器将增加或减少一个数字的分数 == 1,并且每次它变为 0 时都会初始化为 1。
最终目标是相对于随机元素,对等级中的相等和连续元素给予更高的分数。
任何人都可以帮助我吗?