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

判断

我的数据框看起来像这样

> tornado_frame
         tornado_names Level      value
1     node per cluster   low  -34.72222
2          TB per node   low  -52.08333
3  expense per cluster   low -104.16667
4             Total TB   low  -62.50000
5  revenue per cluster   low  -52.08333
6     node per cluster  high   20.83333
7          TB per node  high   41.66667
8  expense per cluster  high   52.08333
9             Total TB  high  145.83333
10 revenue per cluster  high  156.25000

我想把桌子变成这个

> tornado_frame
         tornado_names Level      value
1     node per cluster   low   34.72222
2          TB per node   low   52.08333
3  expense per cluster   low  104.16667
4             Total TB   low  -62.50000
5  revenue per cluster   low  -52.08333
6     node per cluster  high  -20.83333
7          TB per node  high  -41.66667
8  expense per cluster  high  -52.08333
9             Total TB  high  145.83333
10 revenue per cluster  high  156.25000

如果绝对值大于“高”级别列和相同的tornado_name列的绝对值,则“值”中的负号发生变化。

我尝试了一些嵌套的if,但这对我来说很混乱。任何帮助,将不胜感激!

这是我的数据:

> dput(tornado_frame)
structure(list(tornado_names = structure(c(2L, 4L, 1L, 5L, 3L, 
2L, 4L, 1L, 5L, 3L), .Label = c("expense per cluster", "node per cluster", 
"revenue per cluster", "TB per node", "Total TB"), class = "factor"), 
    Level = structure(c(2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L
    ), .Label = c("high", "low"), class = "factor"), value = c(34.72222, 
    52.08333, 104.16667, -62.5, -52.08333, -20.83333, -41.66667, 
    -52.08333, 145.83333, 156.25)), .Names = c("tornado_names", 
"Level", "value"), class = "data.frame", row.names = c(NA, -10L
))
大卫·阿伦堡

这是一个可能的data.table解决方案

library(data.table)
setDT(df)[, value := if(diff(abs(value)) < 0) value * -1,
                                            by = tornado_names]
df
#           tornado_names Level     value
#  1:    node per cluster   low  34.72222
#  2:         TB per node   low  52.08333
#  3: expense per cluster   low 104.16667
#  4:            Total TB   low -62.50000
#  5: revenue per cluster   low -52.08333
#  6:    node per cluster  high -20.83333
#  7:         TB per node  high -41.66667
#  8: expense per cluster  high -52.08333
#  9:            Total TB  high 145.83333
# 10: revenue per cluster  high 156.25000

这将检查您的条件,tornado_names并且仅更改满足条件的组中的值的符号。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用循环从R中的数据框中的其他列创建多个列

来自分类Dev

基于R中其他列的列值总和

来自分类Dev

在数据框R中动态创建列,并根据其他列条件进行填充

来自分类Dev

根据 R 中其他列中的重复值粘贴数据框中的值

来自分类Dev

R:将数据框的多个列中的多个值替换为NA

来自分类Dev

R:将数据框的多个列中的多个值替换为另一列中的值

来自分类Dev

根据R中其他列中的条件数据更改年份的星期值

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

使用Apply函数将基于数据框中月份的值替换为r中另一列中的值

来自分类Dev

基于两个数据帧 R 中多个条件的特定列的值

来自分类Dev

R数据框基于其他数据填充缺失值

来自分类Dev

如何根据 R 数据框中特定列的条件获得行式最大值?

来自分类Dev

R中数据框中的列的替换值

来自分类Dev

R编程:替换数据框列中的缺失值

来自分类Dev

基于其他列的条件的列的R日期格式

来自分类Dev

(R)我正在尝试使用if()语句引用数据框中的一列以计算其他多个列

来自分类Dev

R中序列数据的数据转换:连接一列基于其他列的数据

来自分类Dev

R:如何在数据框列中获取值,具体取决于序列和其他列中的值

来自分类Dev

根据R中其他数据框中是否存在值,将新值添加到新列中

来自分类Dev

基于r中的多个条件创建列

来自分类Dev

在R中更改数据框的多个列元素的值

来自分类Dev

R用其他列的行替换列的值

来自分类Dev

使用一些条件基于列中的值(在R中)创建一个新的数据框

来自分类Dev

当其他列中不存在值时替换R中的两列

来自分类Dev

如何在R中的数据框中使用其他方式更改某些行和列中的值?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    使用循环从R中的数据框中的其他列创建多个列

  5. 5

    基于R中其他列的列值总和

  6. 6

    在数据框R中动态创建列,并根据其他列条件进行填充

  7. 7

    根据 R 中其他列中的重复值粘贴数据框中的值

  8. 8

    R:将数据框的多个列中的多个值替换为NA

  9. 9

    R:将数据框的多个列中的多个值替换为另一列中的值

  10. 10

    根据R中其他列中的条件数据更改年份的星期值

  11. 11

    使用R有条件地替换数据框中的列值

  12. 12

    使用R有条件地替换数据框中的列值

  13. 13

    使用Apply函数将基于数据框中月份的值替换为r中另一列中的值

  14. 14

    基于两个数据帧 R 中多个条件的特定列的值

  15. 15

    R数据框基于其他数据填充缺失值

  16. 16

    如何根据 R 数据框中特定列的条件获得行式最大值?

  17. 17

    R中数据框中的列的替换值

  18. 18

    R编程:替换数据框列中的缺失值

  19. 19

    基于其他列的条件的列的R日期格式

  20. 20

    (R)我正在尝试使用if()语句引用数据框中的一列以计算其他多个列

  21. 21

    R中序列数据的数据转换:连接一列基于其他列的数据

  22. 22

    R:如何在数据框列中获取值,具体取决于序列和其他列中的值

  23. 23

    根据R中其他数据框中是否存在值,将新值添加到新列中

  24. 24

    基于r中的多个条件创建列

  25. 25

    在R中更改数据框的多个列元素的值

  26. 26

    R用其他列的行替换列的值

  27. 27

    使用一些条件基于列中的值(在R中)创建一个新的数据框

  28. 28

    当其他列中不存在值时替换R中的两列

  29. 29

    如何在R中的数据框中使用其他方式更改某些行和列中的值?

热门标签

归档