【问题标题】:appending on ifelse in R [duplicate]在 R 中附加 ifelse [重复]
【发布时间】:2020-06-28 01:07:07
【问题描述】:

如果现有列符合参数,我正在尝试将新文本附加到它。

这是我正在处理的数据集:

      Kod     PC1_05 Rank_05     PC1_18 Rank_18      PC_Chg Rank_Chg Zcore_rank_change Status
1 1010110 -1.6952721      21 -1.7914811      10 -0.09620898      -11        -0.2724456 Stable
2 1010120 -1.3518838      67 -1.4729535      59 -0.12106977       -8        -0.1981423 Stable
3 1010130 -0.7793791     138 -0.9511099     114 -0.17173080      -24        -0.5944268 Stable
4 1010140 -0.2219527     192 -0.6900887     145 -0.46813601      -47        -1.1640857 Stable
5 1010201 -1.4540743      55 -1.6195653      41 -0.16549094      -14        -0.3467489 Stable
6 1010210 -1.4193512      57 -1.5769924      43 -0.15764116      -14        -0.3467489 Stable

并尝试过滤掉第 70 个百分位以上的那些,并将“accending”附加到Status 列。

我在下面尝试了此操作,但似乎将所有 status 列更改为“accending”,而不仅仅是那些高于 70% 的列。

composite_index_merge <- composite_index_merge %>%
  mutate(Status =  ifelse(PC_Chg > quantile(PC_Chg , c(.70)), Status  <-   'Accending', Status))

【问题讨论】:

    标签: r if-statement filter


    【解决方案1】:
    composite_index_merge <- composite_index_merge %>%
      mutate(Status =  ifelse(PC_Chg > quantile(PC_Chg , c(.70)),'Accending', Status))
    

    mutate(Status = 已经处理好了之后,您不需要定义 Status &lt;-

    【讨论】:

    • 啊,明白了!谢谢!
    【解决方案2】:

    您可以使用以下方法直接分配值:

    df$Status[df$PC_Chg > quantile(df$PC_Chg, 0.7)] <- 'Accending'
    

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 2015-07-09
      • 2020-11-12
      • 2013-06-19
      • 2014-08-21
      • 2020-12-03
      相关资源
      最近更新 更多