gpt4 book ai didi

r - 找出ddply中数据源错误的原因

转载 作者:行者123 更新时间:2023-12-03 07:46:44 25 4
gpt4 key购买 nike

我喜欢使用plyr,但有时基础数据会引发我找不到的错误。

例如,我创建了一个求和函数,如果x == 8抛出错误:

df <- data.frame(x = rep(1:10,3), y = runif(30))

ddply(df,
.(x),
function (z) {
if(z$x[1] == 8) {
stop("There's an error somewhere.")
}
return(sum(z$y))
})

假装我不知道是什么导致了错误,有什么方法可以报告哪些数据行导致了错误?

最佳答案

这是使用tryCatch的示例:

set.seed(1)
df <- data.frame(x = rep(1:10,3), y = runif(30))

f = function (z) {
if(z$x[1] == 8) {
stop("There's an error somewhere.")
}
return(sum(z$y))
}

ddply(df, .(x), function(z) {
tryCatch(f(z), error = function(e) {
print("offending block is"); print(z)
})
})

#[1] "offending block is"
# x y
#1 8 0.6607978
#2 8 0.9919061
#3 8 0.3823880
#Error in list_to_dataframe(res, attr(.data, "split_labels")) :
# Results must be all atomic, or all data frames

关于r - 找出ddply中数据源错误的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17624511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com