【发布时间】:2019-01-11 22:31:27
【问题描述】:
df <- data.frame(Tag = c(1, 1, 1, 1, 2, 2, 2, 2),
x = c(9,7,3,2,1,1,1,1),
y = c(1,2,3,4,1,2,3,4))
cor_fun<- function(x,y){
val <- cor(x,y)
return(val)}
df %>%
group_by(Tag) %>%
summarise(c = cor_fun(x,y))
这里我们试图通过group_by(Tag)计算x和y之间的相关性。问题是当我们计算x和y的相关性时,任何一列的标准偏差为0的错误
the standard deviation is zero 这在生产中是不可接受的。所以我除了the standard deviation is zero 发生时,函数应该返回x 的平均值,否则应该返回相关输出。我已经尝试重现下面粘贴的相同场景,请指导我。
在函数名称cor_fun 中使用try-catch。
简要要求
- 在Function里面,我们可以使用try-catch函数,寻找
the standard deviation is zero这个错误, - 如果
the standard deviation is zero发生此错误,函数应返回x 的平均值。 - 如果未找到错误,则返回
cor(x,y)输出。
预期没有错误消息,而是函数应该返回 x 值的平均值。
【问题讨论】:
标签: r debugging error-handling dplyr try-catch