R 创建从数据集中提取n个组的函数

R 创建从数据集中提取n个组的函数,r,R,我正在寻找一种从数据集中提取前n组行的方法 set.seed(1) data <- data.frame(PersonID= sample(1:10, 25,replace=TRUE), value=rnorm(25)) 我使用了独特的: data[data$PersonID %in% unique(data$PersonID)[1:4],] PersonID value 1 3 -0.2894616 2 4 -0.2992151 3

我正在寻找一种从数据集中提取前n组行的方法

set.seed(1)
data <- data.frame(PersonID= sample(1:10, 25,replace=TRUE), value=rnorm(25))
我使用了独特的:

data[data$PersonID %in% unique(data$PersonID)[1:4],]

   PersonID      value
1         3 -0.2894616
2         4 -0.2992151
3         6 -0.4115108
4        10  0.2522234
5         3 -0.8919211
7        10 -1.2375384
11        3  0.8041895
14        4  1.0857694
18       10 -0.2357066
19        4 -0.5428883
21       10 -0.6494716
22        3  0.7267507
25        3 -0.4295131

尝试以下简单代码:

xx =c(3,4,6,10 )

data[data$PersonID %in% xx,]
   PersonID      value
1         3 -0.2894616
2         4 -0.2992151
3         6 -0.4115108
4        10  0.2522234
5         3 -0.8919211
7        10 -1.2375384
11        3  0.8041895
14        4  1.0857694
18       10 -0.2357066
19        4 -0.5428883
21       10 -0.6494716
22        3  0.7267507
25        3 -0.4295131

如果数据集中的组少于
n
组会怎么样?@Spacedman。在这种情况下,不应该返回任何东西。函数必须返回一些东西-NA?无效的具有零行的数据帧?-除非它停止并引发错误。
xx =c(3,4,6,10 )

data[data$PersonID %in% xx,]
   PersonID      value
1         3 -0.2894616
2         4 -0.2992151
3         6 -0.4115108
4        10  0.2522234
5         3 -0.8919211
7        10 -1.2375384
11        3  0.8041895
14        4  1.0857694
18       10 -0.2357066
19        4 -0.5428883
21       10 -0.6494716
22        3  0.7267507
25        3 -0.4295131