gpt4 book ai didi

R:通过字符串匹配提取数据帧的列

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

我有一个数据框,其中变量是字符串。如何仅提取那些至少有一个值与特定字符串匹配的列?例如,在下面的数据帧中,我想要匹配字符串“AB”,即我想将另一个包含 V1、V2 和 V5 列的数据帧子集化。

V1      V2      V3      V4      V5
ABCD ABEF EFGJ AFASD JLKJLXKJ
LKJAF ROGIJ GREJWI SDFS ABKLJKJX
AFSD JLASDF JKLJ OIJPOI AFSD

最佳答案

首先您可以申请grepl每列所需的模式:

> sapply(data, function (x) grepl('AB', x))
V1 V2 V3 V4 V5
[1,] TRUE TRUE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE TRUE
[3,] FALSE FALSE FALSE FALSE FALSE

您可以通过包装 grepl 来简化上述结果调用 any
> sapply(data, function (x) any(grepl('AB', x)))
V1 V2 V3 V4 V5
TRUE TRUE FALSE FALSE TRUE

使用这样的向量,您可以轻松提取所需的列:
data[, sapply(data, function (x) any(grepl('AB', x)))]

结果是:
     V1     V2       V5
1 ABCD ABEF JLKJLXKJ
2 LKJAF ROGIJ ABKLJKJX
3 AFSD JLASDF AFSD

关于R:通过字符串匹配提取数据帧的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20676539/

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