gpt4 book ai didi

r - 子集数据框中某些值的前 n 次出现

转载 作者:行者123 更新时间:2023-12-01 09:20:09 25 4
gpt4 key购买 nike

假设我有一个矩阵(或数据框):

1  5  8
3 4 9
3 9 6
6 9 3
3 1 2
4 7 2
3 8 6
3 2 7

我想只选择第一个条目为“3”的前三行,如下所示:

3  4  9
3 9 6
3 1 2

我很清楚如何拉出所有以“3”开头的行,并且很清楚如何仅拉出以“3”开头的第一行。

但一般来说,如何提取以“3”开头的前 n 行?

另外,怎样才能只选择第3次和第4次出场,如下:

3  1  2
3 8 6

最佳答案

无需额外的包装:

mydf[mydf$V1==3,][1:3,]

结果:

  V1 V2 V3
2 3 4 9
3 3 9 6
5 3 1 2

当你需要第三和第四行时:

mydf[mydf$V1==3,][3:4,]
# or:
mydf[mydf$V1==3,][c(3,4),]

使用过的数据:

mydf <- structure(list(V1 = c(1L, 3L, 3L, 6L, 3L, 4L, 3L, 3L), 
V2 = c(5L, 4L, 9L, 9L, 1L, 7L, 8L, 2L),
V3 = c(8L, 9L, 6L, 3L, 2L, 2L, 6L, 7L)),
.Names = c("V1", "V2", "V3"), class = "data.frame", row.names = c(NA, -8L))

奖励 Material :除了 dplyr,您还可以使用 data.table(see this answer 用于不同 的大型数据集的速度比较)非常有效地做到这一点data.table 方法):

setDT(mydf)[V1==3, head(.SD,3)]
# or:
setDT(mydf)[V1==3, .SD[1:3]]

关于r - 子集数据框中某些值的前 n 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com