循环一个 "If Else "语句,用于比较R中的每日covid增长。

以下是我正在处理的一段数据。

流感日阳性总数 1 2 2 2 1 3 3 2 5 4 0 5 5 3 8 6 4 12 7 7 19 8 8 27 9 9 36 10 15 41 .

我试图用ifelse语句编写一个循环,以确定正列中的一个值是否比前一个值 “高 “或 “低”。这样做将创建一个名为 “趋势 “的新列,并相应地在行中填入 “较高 “或 “较低 “的值。

 {
if(Flu$Positive[i+1]>Covid$Positive[i]))
   Trend = "Higher"
else
   Trend = "Lower"
   }

解决方案:

我们可以使用 diff 以创建逻辑向量

with(Covid, c("Lower", "Higher")[c(FALSE, diff(Positive) > 0) + 1])
#[1] "Lower"  "Lower"  "Higher" "Lower"  "Higher" "Higher" "Higher" "Higher" "Higher" "Higher"

如果我们需要一个循环,启动一个带有 “Lower “值的输出向量,然后在行的序列上循环,检查出 if ‘Positive’的当前值大于之前的行值,将该行的向量赋值给’Higher’。

v1 <- rep("Lower", nrow(Covid))
for(i in 2:nrow(Covid)) if(Covid$Positive[i] > Covid$Positive[i-1]) v1[i] <- "Higher"
v1
# [1] "Lower"  "Lower"  "Higher" "Lower"  "Higher" "Higher" "Higher" "Higher" "Higher" "Higher"

资料

Covid <- structure(list(Day = 1:10, Positive = c(1L, 0L, 1L, 0L, 1L, 2L, 
4L, 5L, 7L, 14L), Total = c(1L, 1L, 2L, 2L, 3L, 5L, 9L, 14L, 
21L, 35L)), class = "data.frame", row.names = c(NA, -10L))

给TA打赏
共{{data.count}}人
人已打赏
未分类

Java包装器方法练习问题

2022-9-13 14:07:36

未分类

在Python中的石头布和剪刀

2022-9-13 14:07:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索