gpt4 book ai didi

如果在 R 的另一个列表中找到 id,则删除数据框的行

转载 作者:行者123 更新时间:2023-12-04 01:47:14 27 4
gpt4 key购买 nike

我有一个数据框 final,其中每个观察在名为 final$workerId 的列中都有一个 id如果在另一个名为 omit 的列表中找到它们的 ID,我想删除此数据框的某些行这是我尝试过的

final <- read.csv("the data.csv")
omit <- c("A3E9N7HDRLT8KV","A39HQTITNY9TVJ","A272A0JGRTBFCR","A1QPHQ1C27ZFI7")
final <- final[,-final$workerId %in% omit]

我知道如何使用 for 循环来做到这一点,但我正在寻找一种尽可能不使用 for 循环的解决方案

最佳答案

%in% 返回一个逻辑向量。逻辑向量的反义词可以用 ! 找到,而不是 -,所以 final[!final$workerId %in% omit, ] 是你想要什么。

您也可以使用 which 将逻辑转换为整数索引向量,然后您可以像这样使用 -:final[-which(final $workerId %in% omit), ],但第一种方式似乎更简单。

例子:

mtcars[!mtcars$cyl %in% c(4, 6), ]
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8

关于如果在 R 的另一个列表中找到 id,则删除数据框的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882079/

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