gpt4 book ai didi

r - 在 R 中使用 grep 从 data.frame 中删除行

转载 作者:行者123 更新时间:2023-12-04 01:26:56 24 4
gpt4 key购买 nike

我有一个像这样的数据框:

    d <- data.frame(cbind(x=1, y=1:10,    z=c("apple","pear","banana","A","B","C","D","E","F","G")), stringsAsFactors = FALSE)

我想从这个数据框中删除一些行,具体取决于 z 列的内容:
    new_d <- d[-grep("D",d$z),]

这很好用;现在删除第 7 行:
    new_d
x y z
1 1 1 apple
2 1 2 pear
3 1 3 banana
4 1 4 A
5 1 5 B
6 1 6 C
8 1 8 E
9 1 9 F
10 1 10 G

但是,当我使用 grep 搜索列 z 中不存在的内容时,它似乎删除了数据框的所有内容:
    new_d <- d[-grep("K",d$z),]
new_d
[1] x y z
<0 rows> (or 0-length row.names)

我想以这种或其他方式搜索和删除行,即使我正在搜索的字符串不存在。如何解决这个问题?

最佳答案

您可以使用 TRUE/FALSE 子集而不是数字。
grepl就像 grep,但它返回一个 logical向量。否定与它一起工作。

 d[!grepl("K",d$z),]
x y z
1 1 1 apple
2 1 2 pear
3 1 3 banana
4 1 4 A
5 1 5 B
6 1 6 C
7 1 7 D
8 1 8 E
9 1 9 F
10 1 10 G

关于r - 在 R 中使用 grep 从 data.frame 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544083/

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