将自定义函数应用于数据框

弗兰克·杜尔

在不太复杂但对我来说新鲜的东西上需要帮助。我有一个数据帧df,其中包含一列Product.id和一个价格Price。

Product.id  price
A   11.5
A   11.5
A   12
A   13
A   13
B   9.25
B   9.75
B   9.75
B   9.5

我想使用自定义功能检查价格是否比上个月有所变化:

Check.Price.Change <- function(Vector){
  for(x in 1:nrow(Vector)){
    if(Vector[x] != Vector[x-1]){
      TRUE 
    }
  }
}

检查存储桶是否比上个月有变化

df <- df %>%
  group_by(Product.id) %>%
  mutate(if.Price.change = lapply(Price, Check.Price.Change))

我得到错误:

Error in 1:nrow(Vector) : argument of length 0
Called from: FUN(X[[i]], ...)

请问正确的方法是什么?

罗纳克·沙

我们可以使用lagindplyr与上一个条目进行比较。

library(dplyr)
df %>% group_by(Product.id) %>%  mutate(is_changed = price != lag(price))

# Product.id price is_changed
#  <fct>      <dbl> <lgl>     
#1 A          11.5  NA        
#2 A          11.5  FALSE     
#3 A          12    TRUE      
#4 A          13    TRUE      
#5 A          13    FALSE     
#6 B           9.25 NA        
#7 B           9.75 TRUE      
#8 B           9.75 FALSE     
#9 B           9.5  TRUE      

同样,有一个shift函数data.table的默认type值为"lag"

library(data.table)
setDT(df)[, is_changed := price != shift(price), by = Product.id]

数据

df <- structure(list(Product.id = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L), .Label = c("A", "B"), class = "factor"), price = c(11.5, 
11.5, 12, 13, 13, 9.25, 9.75, 9.75, 9.5)), class = "data.frame", 
row.names = c(NA, -9L))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义累积函数应用于熊猫数据框

来自分类Dev

如何将自定义函数应用于熊猫数据框的2列?

来自分类Dev

将自定义函数应用于数据框的每个子集并生成一个数据框

来自分类Dev

将自定义函数应用于数据框的每个子集并生成一个数据框

来自分类Dev

将自定义函数应用于具有通用名称的任何数据集

来自分类Dev

将自定义函数一次应用于分组的数据帧n行

来自分类Dev

将自定义函数应用于R中数据帧中每一行的两列

来自分类Dev

R将自定义矢量化函数应用于数据帧中的行,特定列

来自分类Dev

将自定义主题应用于Odoo应用

来自分类Dev

将自定义样式应用于微调器

来自分类Dev

无法将自定义listSelector应用于ListView

来自分类Dev

将自定义功能应用于熊猫df

来自分类Dev

将自定义累积功能应用于熊猫

来自分类Dev

将自定义累积功能应用于熊猫

来自分类Dev

如何在PyMC中将自定义函数应用于变量?

来自分类Dev

将自定义函数应用于pandas Series会产生AttributeError

来自分类Dev

将自定义函数应用于r中的每一行

来自分类Dev

将自定义numba njit函数应用于熊猫滚动对象

来自分类Dev

将自定义聚合函数应用于pandas DataFrame

来自分类Dev

如何在PyMC中将自定义函数应用于变量?

来自分类Dev

在模式中使用'current()'函数将自定义模板应用于节点

来自分类Dev

如何将自定义函数应用于 quanteda 语料库

来自分类Dev

如何将自定义重试策略应用于 Azure 函数中的 Eventhub 绑定

来自分类Dev

将自定义函数应用于多个 data.table 列

来自分类Dev

将自定义函数应用于 Data.Table

来自分类Dev

如何将自定义比较器应用于R数据帧?

来自分类Dev

如何将自定义主题应用于Google自定义搜索?

来自分类Dev

如果使用apply和mutate_at满足条件,则将自定义函数应用于选择列中的数据

来自分类Dev

将数值向量分成不相等的部分,然后将自定义函数应用于每个部分

Related 相关文章

  1. 1

    将自定义累积函数应用于熊猫数据框

  2. 2

    如何将自定义函数应用于熊猫数据框的2列?

  3. 3

    将自定义函数应用于数据框的每个子集并生成一个数据框

  4. 4

    将自定义函数应用于数据框的每个子集并生成一个数据框

  5. 5

    将自定义函数应用于具有通用名称的任何数据集

  6. 6

    将自定义函数一次应用于分组的数据帧n行

  7. 7

    将自定义函数应用于R中数据帧中每一行的两列

  8. 8

    R将自定义矢量化函数应用于数据帧中的行,特定列

  9. 9

    将自定义主题应用于Odoo应用

  10. 10

    将自定义样式应用于微调器

  11. 11

    无法将自定义listSelector应用于ListView

  12. 12

    将自定义功能应用于熊猫df

  13. 13

    将自定义累积功能应用于熊猫

  14. 14

    将自定义累积功能应用于熊猫

  15. 15

    如何在PyMC中将自定义函数应用于变量?

  16. 16

    将自定义函数应用于pandas Series会产生AttributeError

  17. 17

    将自定义函数应用于r中的每一行

  18. 18

    将自定义numba njit函数应用于熊猫滚动对象

  19. 19

    将自定义聚合函数应用于pandas DataFrame

  20. 20

    如何在PyMC中将自定义函数应用于变量?

  21. 21

    在模式中使用'current()'函数将自定义模板应用于节点

  22. 22

    如何将自定义函数应用于 quanteda 语料库

  23. 23

    如何将自定义重试策略应用于 Azure 函数中的 Eventhub 绑定

  24. 24

    将自定义函数应用于多个 data.table 列

  25. 25

    将自定义函数应用于 Data.Table

  26. 26

    如何将自定义比较器应用于R数据帧?

  27. 27

    如何将自定义主题应用于Google自定义搜索?

  28. 28

    如果使用apply和mutate_at满足条件,则将自定义函数应用于选择列中的数据

  29. 29

    将数值向量分成不相等的部分,然后将自定义函数应用于每个部分

热门标签

归档