【问题标题】:ifelse() not working correctly using mutate: Rifelse() 使用 mutate 无法正常工作:R
【发布时间】:2021-01-21 17:40:35
【问题描述】:

我对 ifelse confition 有一点怀疑。我已经阅读了许多文章并尝试了不同的解决方案,但我无法解决它。请帮帮我。

我有一列从 0:59 开始的数字,它会像这样重复出现 500 行。 我正在尝试创建另一列,将 0:29 划分为 0,将 30:59 划分为 30。

数据:

> data$Minute
   [1]  0  0  0  1  1  1  2  2  2  2  2  2  3  3  4  4  4  5  5  5  5  5  6  6  6  7  7  7  7  7  8  8  8  8  8  8  9
  [38] 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 13 13 13 13 13 14 14 14 14 14 14 15 15 15
  [75] 15 15 15 15 15 15 16 16 16 16 16 17 17 18 18 18 18 18 19 19 19 19 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21
 [112] 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25
 [149] 26 26 26 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 29
 [186] 29 29 29 29 29 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31
 [223] 31 32 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 34 34 34 34 34 34 34 34 35 35 35 35 35 35 35
 [260] 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 37 37 37 37 38 38 38 38 38 38 38 38 38 38 39 39 39 39 39 39 39
 [297] 39 39 40 40 40 40 40 40 40 40 40 40 40 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 42 42 42 42 42 42 42
 [334] 42 42 42 42 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 44 44 44 44 44 44 44 44 44 45 45 45 45 45 45 45 45
 [371] 45 45 45 45 45 45 45 45 46 46 46 46 46 46 46 47 47 47 47 47 47 47 47 47 47 47 47 47 48 48 48 48 48 48 48 48 48
 [408] 48 48 48 49 49 49 49 49 49 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 51 51 51 51 51 51 51 51 51 51 52 52 52
 [445] 52 52 52 52 52 52 52 52 52 53 53 53 53 53 53 53 53 54 54 54 54 54 54 54 54 54 54 54 55 55 55 55 55 55 55 55 55
 [482] 55 56 56 56 56 56 56 56 56 56 56 56 56 56 57 57 57 57 57 57 57 57 58 58 58 58 58 58 58 58 58 59 59 59 59 59 59
 [519] 59 59 59 59 59 59 59  0  0  0  0 

代码:

data<- data %>%  mutate(Period = ifelse(((Minute >=0) && (Minute <= 30)),0, 30) )           

在运行此代码时,我只将所有数据点的 Period 值设为 0。你能帮我解决这个小问题吗?

提前致谢!

【问题讨论】:

标签: r if-statement dplyr


【解决方案1】:

试试这个

data %>%  mutate(Period = ifelse(minute <= 30, 0, 30))

【讨论】:

  • 哇!成功了,非常感谢!但是,我仍然不确定为什么之前会出现错误。
  • 正如您问题下的评论中所写,您应该使用单个 &amp;。但是,在这种特殊情况下,没有必要,因为分钟的范围是从 0 到 59,所以一分钟 0
猜你喜欢
  • 2022-06-30
  • 2018-10-21
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2017-01-12
相关资源
最近更新 更多