在R中创建一个函数以比较行

编101

我想在R中创建一个函数来比较“当前行值”和“先前行值”。一种。如果当前行值小于上一行值,则返回单词LOW b。如果当前行值高于上一个值,则返回单词HIGH c。如果当前行值与上一行值相同,则返回单词EQUAL

我想创建一个名为Decision的新列,其中的单词将如下存储

价值决定

1不适用

2高

1.5低

1.4低

1.4相等

阿克伦

我们可以case_when将“值”与上一个“值”(lag进行比较,并根据该值是较低还是较高来创建“决策”列

library(dplyr)
df1 %>%
 mutate(Decision = case_when(Value < lag(Value) ~ "LOW", 
     Value > lag(Value) ~ "HIGH", Value == lag(Value) ~ "EQUAL"))
#  Value Decision
#1   1.0     <NA>
#2   2.0     HIGH
#3   1.5      LOW
#4   1.4      LOW
#5   1.4    EQUAL

或者另一种选择是走差异化,然后更改labelS INfactor

with(df1, c(NA_character_, 
    as.character(factor(sign(Value[-length(Value)] - Value[-1]),         
       levels = c(-1, 1, 0), labels = c("HIGH", "LOW", "EQUAL")))))
#[1] NA      "HIGH"  "LOW"   "LOW"   "EQUAL"

或使用for循环

df1$Decision <- rep(NA_character_, nrow(df1))
for(i in 2: nrow(df1)){
    if(df1$Value[i] > df1$Value[i-1]){
       df1$Decision[i] <- "HIGH"
      } else if(df1$Value[i] < df1$Value[i-1]) {

        df1$Decision[i] <- "LOW"
       } else df1$Decision[i] <- "EQUAL"


   }

如果需要一个功能

f1 <- function(dat, colNm, newCol) {
  dat[[newCol]] <- rep(NA_character_, nrow(dat))
    for(i in 2: nrow(dat)){
        if(dat[[colNm]][i] > dat[[colNm]][i-1]){
           dat[[newCol]][i] <- "HIGH"
          } else if(dat[[colNm]][i] < dat[[colNm]][i-1]) {

            dat[[newCol]][i] <- "LOW"
           } else dat[[newCol]][i] <- "EQUAL"


       }
     dat
   }

f1(df1, "Value", "Decision")

数据

df1 <- structure(list(Value = c(1, 2, 1.5, 1.4, 1.4)), class = "data.frame",
     row.names = c(NA, 
-5L))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在另一个函数中创建一个函数以更改状态

来自分类Dev

如何在SQL Server中创建一个函数以将2个datetime2值与GETDate进行比较并返回一个布尔值

来自分类Dev

如何在R中创建一个函数以计算纵向研究参与者的每周调查?

来自分类Dev

创建一个函数以从PostgreSQL中的另一个表插入一个表

来自分类Dev

创建记录时,运行一个函数以在另一个模块中创建记录-Odoo 13

来自分类Dev

如何创建一个函数以供稍后在另一个函数中重用

来自分类Dev

如何在 R 中创建一个函数来比较数据帧的连续偶数行和奇数行并返回相同格式的数据帧?

来自分类Dev

创建一个函数以将单个数字分成近似相等的组R

来自分类Dev

创建一个函数以将单个数字分成近似相等的组R

来自分类Dev

创建一个函数以基于给定的参数(如列表和熊猫中的特定条件)在数据框中创建新行

来自分类Dev

创建一个函数以返回表SQL

来自分类Dev

创建一个jQuery函数以供单击

来自分类Dev

从R中的df创建一个比较表

来自分类Dev

创建一个函数以从数据中添加因子列

来自分类Dev

创建一个函数以返回C中int数组的长度

来自分类Dev

创建一个函数以按Javascript中的值对对象数组进行排序

来自分类Dev

熊猫:创建1个函数以读取json,然后创建另一个函数以创建数据框

来自分类Dev

如何映射一个函数以仅应用于数据框中的某些行?

来自分类Dev

创建一个函数以在最后添加一个双向链接列表

来自分类Dev

在R中应用函数以比较列

来自分类Dev

R:在tidyverse中创建一个函数

来自分类Dev

创建一个有条件的递归函数以计算R = x-N * y

来自分类Dev

在AngularJS中,如何在一个控制器中创建函数以更改另一个控制器中的变量?

来自分类Dev

申请一个函数以使用向量化输入在数据框中创建新列

来自分类Dev

创建一个函数以绘制计数图或基于数据框中列的数据类型绘制直方图

来自分类Dev

在Excel VBA中创建一个函数以测试单元格是否包含某个字符

来自分类Dev

我将如何在 Python 中创建另一个 int() 函数以便我理解它?

来自分类Dev

创建一个函数以输出3个变量的所有迭代

来自分类Dev

创建一个修改后的“等于”函数以与RackUnit一起使用

Related 相关文章

  1. 1

    在另一个函数中创建一个函数以更改状态

  2. 2

    如何在SQL Server中创建一个函数以将2个datetime2值与GETDate进行比较并返回一个布尔值

  3. 3

    如何在R中创建一个函数以计算纵向研究参与者的每周调查?

  4. 4

    创建一个函数以从PostgreSQL中的另一个表插入一个表

  5. 5

    创建记录时,运行一个函数以在另一个模块中创建记录-Odoo 13

  6. 6

    如何创建一个函数以供稍后在另一个函数中重用

  7. 7

    如何在 R 中创建一个函数来比较数据帧的连续偶数行和奇数行并返回相同格式的数据帧?

  8. 8

    创建一个函数以将单个数字分成近似相等的组R

  9. 9

    创建一个函数以将单个数字分成近似相等的组R

  10. 10

    创建一个函数以基于给定的参数(如列表和熊猫中的特定条件)在数据框中创建新行

  11. 11

    创建一个函数以返回表SQL

  12. 12

    创建一个jQuery函数以供单击

  13. 13

    从R中的df创建一个比较表

  14. 14

    创建一个函数以从数据中添加因子列

  15. 15

    创建一个函数以返回C中int数组的长度

  16. 16

    创建一个函数以按Javascript中的值对对象数组进行排序

  17. 17

    熊猫:创建1个函数以读取json,然后创建另一个函数以创建数据框

  18. 18

    如何映射一个函数以仅应用于数据框中的某些行?

  19. 19

    创建一个函数以在最后添加一个双向链接列表

  20. 20

    在R中应用函数以比较列

  21. 21

    R:在tidyverse中创建一个函数

  22. 22

    创建一个有条件的递归函数以计算R = x-N * y

  23. 23

    在AngularJS中,如何在一个控制器中创建函数以更改另一个控制器中的变量?

  24. 24

    申请一个函数以使用向量化输入在数据框中创建新列

  25. 25

    创建一个函数以绘制计数图或基于数据框中列的数据类型绘制直方图

  26. 26

    在Excel VBA中创建一个函数以测试单元格是否包含某个字符

  27. 27

    我将如何在 Python 中创建另一个 int() 函数以便我理解它?

  28. 28

    创建一个函数以输出3个变量的所有迭代

  29. 29

    创建一个修改后的“等于”函数以与RackUnit一起使用

热门标签

归档