在 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/