应用if函数基于另一个变量的值来标识变量的值

时间:2019-07-16 12:58:05

标签: r if-statement

我正在尝试在R数据帧中根据另一个变量的值来确定变量的值,但无法做到这一点。 基本上,我将3种不同的疫苗Dose分配给三组动物(每组5只动物(Total),并将结果记录为Protec,这意味着每种动物中受保护的动物数量组。根据{{​​1}},我正在计算每个Protec组的保护比例(Protec / Total为Prop。例如

Dose

问题是,library(dplyr) Dose=c(1,0.25,0.0625);Dose #Dose or Dilution Protec=c(5,4,3);Protec Total=c(rep(5,3));Total df=as.data.frame(cbind(Dose,Protec,Total));df df=df %>% mutate(Prop=Protec/Total);df 的{​​{1}}的最小值的log10是多少,可以使用以下代码找到

Dose

结果应为X0 = 0

如果Prop==1X0=log10(min(df$Dose[df$Prop1==1.0]));X0 变成c(1.0,1.0,0.6),则X0应该是-0.60206。 如果Protec=c(5,5,3),则Prop变成c(1.0,1.0,1.0),为此我希望X0 = 0。 如果Protec=c(5,5,5)的{​​{1}}变成c(1.0,0.8,1.0),那么我也希望X0 = 0,因为我认为它们是无序的,并且采用最高剂量来计算X0

我认为这需要if函数,但是我不知道如何编写代码的条件。

有人可以在R中解释如何做吗?先谢谢你

1 个答案:

答案 0 :(得分:1)

我们可以使用mutate_at创建将计算应用于列名称以'Protec'开头的多列

library(dplyr)
df1 <- df %>%
         mutate_at(vars(starts_with("Protec")), list(Prop = ~./Total))