gpt4 book ai didi

r - R 中的过滤/子集应用于多列

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

Index   odx1    odx2    odx3    odx4    odx5
1 123 0 0 0 0
2 0 321 0 0 0
3 0 0 0 123 0
4 0 321 0 0 0
5 0 0 0 0 0

我在上面附上了我的数据集示例。我想过滤 R 中的多个列,以对包含例如 123 或 321 的数据集进行子集化。

到目前为止我尝试的是使用 dplyr -

df %>% filter(., odx1==123 | odx2==123 | odx3==123 | odx4==123 | odx5==123 | odx1==321| odx2==321| odx3==321| odx4==321| odx5==321)

虽然上面的方法行得通,但是有没有更简洁更简单的方法呢?

我的实际数据集包含 odx1-odx25,我有一个包含大约 15 个字符串的列表,用于过滤大约 10 万行。

编辑:

实际数据集包含随机数字字符串,但为了可见性和简单性,我只是使用 0 作为示例。

Index   odx1    odx2    odx3    odx4    odx5
1 123 421 532 414 981
2 243 321 765 132 321
3 144 322 587 123 444
4 655 321 459 091 676
5 456 421 523 431 768

最佳答案

正如我的评论:

如果数据始终采用这种通用格式(只是想摆脱由全 0 组成的观察结果,那么更快一点(在击键和计算时间方面)的解决方案是:

df[rowSums(df[, -1]!=0)!=0,]

关于r - R 中的过滤/子集应用于多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444980/

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