gpt4 book ai didi

r - 根据向量中的值从数据框中选择行

转载 作者:行者123 更新时间:2023-12-03 05:40:15 25 4
gpt4 key购买 nike

我有类似的数据:

dt <- structure(list(fct = structure(c(1L, 2L, 3L, 4L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 4L), .Label = c("a", "b", "c", "d"), class = "factor"), X = c(2L, 4L, 3L, 2L, 5L, 4L, 7L, 2L, 9L, 1L, 4L, 2L, 5L, 4L, 2L)), .Names = c("fct", "X"), class = "data.frame", row.names = c(NA, -15L))

我想根据 fct 变量中的值从此数据框中选择行。例如,如果我想选择包含“a”或“c”的行,我可以这样做:

dt[dt$fct == 'a' | dt$fct == 'c', ]

产生

1    a 2
3 c 3
5 c 5
7 a 7
9 c 9
10 a 1
12 c 2
14 c 4
正如预期的那样。但我的实际数据更复杂,我实际上想根据向量中的值选择行,例如

vc <- c('a', 'c')

所以我尝试了

dt[dt$fct == vc, ]

但这当然行不通。我知道我可以编写一些代码来循环遍历向量并提取所需的行并将它们附加到新的数据帧中,但我希望有一种更优雅的方法。

那么如何根据向量 vc 的内容过滤/子集我的数据?

最佳答案

看看?“%in%”

dt[dt$fct %in% vc,]
fct X
1 a 2
3 c 3
5 c 5
7 a 7
9 c 9
10 a 1
12 c 2
14 c 4

您还可以使用?is.element:

dt[is.element(dt$fct, vc),]

关于r - 根据向量中的值从数据框中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11612235/

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