【问题标题】:how to create my own formula with specific variable如何使用特定变量创建自己的公式
【发布时间】:2020-02-29 10:51:18
【问题描述】:

我有一个包含 4 列的数据集,并希望将我自己的公式应用于具有特定列条件的数据集

数据集是

s.no  id  sex  age  cre
1   103469  M   68  0.9
2   103469  M   68  NULL
3   103469  F   68  NULL
4   103469  F    68 0.8
5   103469  M   68  0.8
6   103469  M   69  0.9

我要构造的公式是A*(cre/B)^C*0.993^age)

在哪里

A = 150
B = 20
C = 29

如果列 sex = "M" 并且 cre

【问题讨论】:

    标签: r string function


    【解决方案1】:

    在基础 R 中,我们可以使用 transformifelse 假设 df 是数据框名称

    transform(df,new_form = ifelse(sex == "M" & cre < 0.9, A*(cre/B)^C*0.993^age, NA))
    

    或使用data.table

    library(data.table)
    setDT(df)[sex == "M" & cre < 0.9, formula := A*(cre/B)^C*0.993^age]
    

    【讨论】:

    • 感谢代码在男性中完美运行。对于女性组,我使用了transform(e,new_form_2 = ifelse(sex == "F" &amp; cre &gt; 0.7, 144*(cre/0.7)^-1.209*0.993^age, NA)) ...一旦完成,它就会产生正确的女性值并隐藏男性值。 .建议我同时执行两个条件的代码。
    • @king_arrival27 结合case_when中的两个条件或使用嵌套的ifelsetransform(df,new_form = ifelse(sex == "M" &amp; cre &lt; 0.9, A*(cre/B)^C*0.993^age, ifelse(sex == "F" &amp; cre &gt; 0.7, 144*(cre/0.7)^-1.209*0.993^age, NA)))
    • 我需要的确切输出,非常感谢您的工作和支持,它正在正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多