【发布时间】:2017-03-28 21:56:23
【问题描述】:
我有一个数据帧列表L,其中每个数据帧由变量Var 和一个由不同数字组成的观察值组成。每个观察中的每个数字都属于集合{1,2,3,4,5,11,12,13,14,15}。例如,L 可能如下所示:
> L
[[1]]
Var
1 "3", "11", "1", "15",
[[2]]
Var
1 "5", 13", "3", "12",
[[3]]
Var
1 "4", "1", "2", "5",
我要解决的问题如下。我想知道是否有一个正数x = {1,2,3,4,5},这样当添加到给定观察中的每个数字时,该观察变得等同于另一个。例如,考虑L 的前两个元素并让x=2,然后将x 添加到L 的第一个元素产生:
> L[[1]]
Var
1 "5", "13", "3", "17",
数字 17 不满足上面定义的集合的条件。我希望以下约束适用于x。让y 表示 obs 中的一个数字。在L的数据框中:
if y + x > 15 then subtract 5
if 5 < y + x < 11 then subtract 5
具有这些约束的相同示例将产生:
> L[[1]]
Var
1 "5", "13", "3", "12",
而L[[1]] 将等同于L[[2]]。在我的世界里,L[[1]] 和 L[[2]] 共享相同的模式。我想要做的是基于等效(在上述意义上)模式匹配L 的元素,并根据“成员数量”对组进行排序。因此,在此处的示例中,我想检测L[[1]] 和L[[2]] 在一个组中,这是成员最多的组,其次是下一组,在此示例中仅包含L[[3]]。我对 R 很陌生,任何指导都将不胜感激!
【问题讨论】:
-
通过减去每行的最小值来规范化您的数据?
标签: r list dataframe equivalence-classes