gpt4 book ai didi

r - 如何处理R中的空数据帧?

转载 作者:行者123 更新时间:2023-12-04 09:29:53 25 4
gpt4 key购买 nike

我注意到有时当我忘记检查我正在处理的数据框是否实际上是空的(有零行)时,我的 R 脚本会出错。

例如,当我使用这样的应用程序时
apply(X=DF,MARGIN=1,FUN=function(row) !any(vec[ row[["start"]]:row[["end"]] ]))
DF碰巧是空的,我得到了关于下标的错误。

这是为什么?空数据帧不是有效的吗?为什么apply()MARGIN=1当数据框中没有行时,甚至尝试做任何事情?我真的需要在每个这样的应用之前添加一个条件以确保数据框不为空吗?

谢谢!

最佳答案

这绝对与apply无关。 .当 data.frame 为空时,您应用的函数不起作用。

> myFUN <- function(row) !any(vec[ row[["start"]]:row[["end"]] ])
> myFUN(DF[1,]) # non-empty data.frame
[1] FALSE
> myFUN(data.frame()[1,]) # empty data.frame
Error in row[["start"]]:row[["end"]] : argument of length 0

为您的函数添加条件。
> apply(X=data.frame(),MARGIN=1,  # empty data.frame
+ FUN=function(row) {
+ if(length(row)==0) return()
+ !any(vec[ row[["start"]]:row[["end"]] ])
+ })
NULL

关于r - 如何处理R中的空数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656644/

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