我有一个数据框,它的列中有一个人(pid)和位置列。我试图对数据进行子集划分,以便当人员ID发生超过67次时,我根据个人实例发生的位置获取数据的子集,然后对该子集运行一系列回归。我知道如何让每个打到67个门槛的人(使用table()来获得每个pid的数量),但是如何根据他们的位置得到数据框的一个子集,而不知道这个位置是什么?数据框大约有100,000行,400人击中67分,因此手动操作似乎并不实际。故障子集r数据帧
我不知道如何把我的数据的样本数据集放在这里,但它看起来像这样。因此,例如,如果pid值1重复200次,我希望将位置值为'6'的所有数据框都分组,而不管pid。类似于pid 3 - 我想要位置为'1'的所有行。唯一的问题是,有时一个pid会有多个位置。大多数将在一个特定的位置 - 所以与3号,有位置1和位置2.在这种情况下,我想要子集的位置占多数。
pid location
1 6
1 6
1 6
2 4
2 6
3 1
3 2
3 1
样本数据
set.seed(1)
pid <- sample(1:10, 1000, replace=T)
location <- sample(1:10, replace=T)
df <- data.frame(pid, location)
编辑: 好 - 我想要做的就是让每一个的Pid是重复超过66倍。一旦我有了这个列表,我想知道他们发生了什么位置。然后,我想在整个数据框的位置子集上运行一系列回归。因此 - 如果Pid 1发生500次,并且它们发生在位置6中,我想为位置6的数据集进行子集化,为Pid 1创建一个虚拟变量并在位置6的子集上运行一堆回归(其他回归变量不包括在内在这个例子中)。数据框中有1272个唯一的Pid。我能够使用Ano的答案来获得我正在寻找的东西,但最后我做了一些改变。对于我来说,首先按位置对数据进行分组,然后获得重复超过66次的Pid并运行我的回归,似乎更容易(至少在概念上)。这消除了对具有多个位置的Pid's的任何担忧。但是对于r来说,这是一个很新的东西,我愿意接受其他关于什么是更好的编码方式的建议。 希望这个澄清一点。
你应该说明你想要的输出是什么样的。 – Frank
等待 - 我知道我是新来的stackoverflow,但为什么一个帖子被搁置后,答案已被接受?现在编辑帖子,希望能让它更容易理解。 – MikeD
你有五个答案,其中三个被他们的作者删除,因为他们意识到他们不知道你在做什么。被接受的答案正确地猜出你的意图并不能改善这方面的问题。也许它应该重新打开,因为你已经添加了更多的文本,但我没有看到这一点。我想说的是,只要你下一次提出问题就会变得更清楚。 – Frank