【发布时间】:2014-08-01 14:15:55
【问题描述】:
我正在寻找一种通过变量值对数据框中的变量编写条件操作的方法,但我无法完全理解如何去做。
假设我有以下动物收容所摄入量的每日数据:
shelters <- data.frame(
date = rep(seq(as.Date("2014-02-01"), length=10, by = "1 day"),10),
animal = sample(c("dog","cat","goldfish"), 100, replace = T),
intake = sample(1:10, 100, replace = T))
我想设置一个规则来增加数据框,以便当“动物”变量中某个动物的摄入量总和达到给定值时,在达到给定日期之后的每个“摄入量”值变为0。
假设每只动物的最大值如下:
dog = 90
cat = 100
goldfish = 85
我倾向于使用 cumsum,但如何在 cumsum 公式中指定特定的动物值?
【问题讨论】:
-
图利亚。如果最大。值存储在与动物列按相同顺序排列的向量中,
v1 <- c(90,100, 85); indx <- setNames(v1, unique(as.character(shelters$animal)))[as.character(shelteres$animal)]
标签: r