按值过滤数据集并用R中其他数据集中的值替换

拉克西米·那拉辛哈·阿查里亚

我有两个这样的数据集:

>data1
id  l_eng   l_ups
1   6385    239
2   680     0
3   3165    0
4   17941   440
5   135     25
6   151     96
7   102188  84
8   440     65
9   6613    408

>data2
id  l_ups
1   237
2   549 
3   100
4   444
5   28
6   101
7   229
8   92
9   47

我想过滤掉 data1 中的值,l_ups==0并将它们替换为 data2 中的值,使用 id 作为 r 中的查找值。

最终输出应如下所示:

id  l_eng   l_ups
1   6385    239
2   680     549
3   3165    100
4   17941   440
5   135     25
6   151     96
7   102188  84
8   440     65
9   6613    408

我尝试了下面的代码,但没有运气

if(data1[,3]==0)
{
filter(data1, last_90_uploads == 0) %>%
merge(data_2, by.x = c("id", "l_ups"),
    by.y = c("id", "l_ups")) %>%
select(-l_ups)
}

我无法通过if语句得到它,因为它只会将一个值作为逻辑条件。但是,如果我有多个值作为逻辑语句呢?像这样:

>if(data1[,3]==0)
TRUE TRUE

编辑:我想用条件过滤值并用另一个数据集中的值替换它们。因此,这个问题与建议的重复问题并不相似。

甘布尔先生

你不想过滤。filter是一种返回数据集的操作,其中的行可能已被删除。

您正在寻找“条件更新”操作(就数据库而言)。您已经在使用 dplyr,所以尝试连接操作而不是匹配:

left_join(data1, data2, by='id') %>%
  mutate(l_ups = ifelse(!is.na(l_ups.x) || l_ups.x == 0, l_ups.y, l_ups.x))

通过使用连接操作而不是@markus 建议的直接子集比较,您可以确保只比较具有相同 ID 的值。如果您的一个数据框碰巧丢失了一行,则直接子集比较将失败。通过使用left_join而不是inner_join也确保如果data2缺少 id,则不会从 中删除相应的 id data1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何替换R中其他数据集的值?

来自分类Dev

如何替换R中其他数据集的值?

来自分类Dev

合并数据框并用 R 中的值替换 NONE

来自分类Dev

替换数据集中的值

来自分类Dev

如何在Pandas方法链表达式中基于其他列的值替换数据子集中的值

来自分类Dev

用其他值替换数据框中的值

来自分类Dev

根据其他数据集中的其他值创建变量

来自分类Dev

R根据/基于一个数据集中列信息的条件将行值替换为其他行?

来自分类Dev

如何用数据集中其他地方的等效值替换 NA?

来自分类Dev

从其他数据框替换值

来自分类Dev

基于多个其他列的条件式替换数据框列中的值-R

来自分类Dev

根据R中的索引值重复比较数据集的相同部分与数据集的其他部分

来自分类Dev

替换 SAS 数据集中的值

来自分类Dev

其他变量满足R中条件的数据集的返回值

来自分类Dev

使用 R 中另一个数据帧的其他匹配 ID 替换数据帧中的值

来自分类Dev

在其他列中按值高效替换值

来自分类Dev

如何比较两个表并用其他表中的值替换空值

来自分类Dev

从数据框中替换表中的NaN值,而不更改其他值

来自分类Dev

如何用其他数据框中的ID替换数据框中的2列值?

来自分类Dev

从其他数据框替换数据框列中的字典列表中的值

来自分类Dev

用其他数据框中的值替换数据框中的NA

来自分类Dev

如何用其他数据框列替换r的数据框列的值

来自分类Dev

如何用其他数据框列替换r的数据框列的值

来自分类Dev

将空值替换为数据框中其他列的值

来自分类Dev

根据规则用其他值替换数据框中的值

来自分类Dev

替换列中的多个值,并在pandas数据框中保持其他值不变

来自分类Dev

根据日期和其他数据框中的匹配值,用Nan替换值

来自分类Dev

将空值替换为数据框中其他列的值

来自分类Dev

我想使用来自其他列的值替换数据框中的部分列值

Related 相关文章

  1. 1

    如何替换R中其他数据集的值?

  2. 2

    如何替换R中其他数据集的值?

  3. 3

    合并数据框并用 R 中的值替换 NONE

  4. 4

    替换数据集中的值

  5. 5

    如何在Pandas方法链表达式中基于其他列的值替换数据子集中的值

  6. 6

    用其他值替换数据框中的值

  7. 7

    根据其他数据集中的其他值创建变量

  8. 8

    R根据/基于一个数据集中列信息的条件将行值替换为其他行?

  9. 9

    如何用数据集中其他地方的等效值替换 NA?

  10. 10

    从其他数据框替换值

  11. 11

    基于多个其他列的条件式替换数据框列中的值-R

  12. 12

    根据R中的索引值重复比较数据集的相同部分与数据集的其他部分

  13. 13

    替换 SAS 数据集中的值

  14. 14

    其他变量满足R中条件的数据集的返回值

  15. 15

    使用 R 中另一个数据帧的其他匹配 ID 替换数据帧中的值

  16. 16

    在其他列中按值高效替换值

  17. 17

    如何比较两个表并用其他表中的值替换空值

  18. 18

    从数据框中替换表中的NaN值,而不更改其他值

  19. 19

    如何用其他数据框中的ID替换数据框中的2列值?

  20. 20

    从其他数据框替换数据框列中的字典列表中的值

  21. 21

    用其他数据框中的值替换数据框中的NA

  22. 22

    如何用其他数据框列替换r的数据框列的值

  23. 23

    如何用其他数据框列替换r的数据框列的值

  24. 24

    将空值替换为数据框中其他列的值

  25. 25

    根据规则用其他值替换数据框中的值

  26. 26

    替换列中的多个值,并在pandas数据框中保持其他值不变

  27. 27

    根据日期和其他数据框中的匹配值,用Nan替换值

  28. 28

    将空值替换为数据框中其他列的值

  29. 29

    我想使用来自其他列的值替换数据框中的部分列值

热门标签

归档