我有一个像这样的巨大数据集:
FAMID <- c(1,1,2,3,3,4,4,5,6)
IID <- c(1,2,2,1,2,1,2,1,2)
Value <- c(3,6,3,5,6,7,0,4,6)
df <- as.data.frame(cbind(FAMID, IID, Value))
FAMID IID Value
[1,] 1 1 3
[2,] 1 2 6
[3,] 2 2 3
[4,] 3 1 5
[5,] 3 2 6
[6,] 4 1 7
[7,] 4 2 0
[8,] 5 1 4
[9,] 6 2 6
我需要从每个家庭(FAMID)中随机选择一名成员。每个家庭可以有两名成员(IID=1 或 IID=2),并且存在有两个成员的家庭和只有一名成员的家庭(即 1 或 2)。我需要从每个家庭中随机选择一名成员,但对于那些只有一名成员的家庭,我需要将该成员包括在内。所以,我需要这样的输出:
FAMID IID Value
[1,] 1 1 3
[2,] 2 2 3
[3,] 3 2 6
[4,] 4 1 7
[5,] 5 1 4
[6,] 6 2 6
我尝试过 dplyr 但无法使其工作。
提前非常感谢您。
这可能就是你所追求的
df %>%
slice_sample(by = FAMID)