R编程: perform function with switch functionality for each row based on different columns

标签 r function switch-statement dataframe

在 R 编程中,我尝试执行以下操作:

    df
    A       B     Category
    0.9     0.85  A
    0.7     0.75  B
    0.8     0.90  B

    CSF <- function(df, type) {
    switch(type,
               "A" = qnorm(df$A, 0 , 1),
               "B" = qnorm(df$B, 0 , 1)
    )
    }

    df<-data.frame(df, value = CSF(df,df$category))

期望的结果:

    df
    A       B     Category     Value
    0.9     0.85  A            qnorm(0.9, 0, 1)*
    0.7     0.75  B            qnorm(0.75, 0, 1)*
    0.8     0.90  B            qnorm(0.9, 0, 1)*

*:真实值

错误信息:EXPR 必须是长度为 1 的向量

最佳答案

你可以使用ifelse函数:

df$Value <- ifelse(df$Category=="A",qnorm(df$A,0,1),qnorm(df$B,0,1))

关于R编程: perform function with switch functionality for each row based on different columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694463/

相关文章:

r - 如何将函数应用于 r 中的多个列表列表?

r - qqline 没有给出我预期的行

r - 如何在 ubuntu 12.04 中安装 R 的预测包?

sql-server - 带有表值函数的 INNER JOIN 不起作用

python - 从同一目录中的所有模块导入并调用相同的函数

java - 在 Java 中完全切换枚举会产生 "Missing return statement"错误

java - 通知不显示

r - 反转ggplot2中散点图的大小

javascript - 如何使用 JS 数组元素来定义对使用参数的函数的调用

java - 我们可以在 Java 的同一 switch 语句中的另一个 case 中调用 "case"吗?