如果R中的数据框为空,如何编写if/else语句

如果R中的数据框为空,如何编写if/else语句,r,R,我正在努力做到以下几点: 如果数据框中没有任何内容,请打印“无匹配” 如果有内容,请将其绑定到数据帧df2的ID: if(df == []){ print("nomatch") }else{ cbind(df, df2$id2) } 您可以通过dim获取有关数据框尺寸的信息。例如,运行代码: data(mtcars) dim(mtcars) 将向您显示尺寸: [1] 32 11 对于NULL对象,您将得到: mtcars <- NULL dim(mtcars) NULL 你会得到

我正在努力做到以下几点: 如果数据框中没有任何内容,请打印“无匹配”

如果有内容,请将其绑定到数据帧
df2
ID

if(df == []){
print("nomatch")
}else{
cbind(df, df2$id2)
}

您可以通过
dim
获取有关数据框尺寸的信息。例如,运行代码:

data(mtcars)
dim(mtcars)
将向您显示尺寸:

[1] 32 11
对于
NULL
对象,您将得到:

mtcars <- NULL
dim(mtcars)
NULL
你会得到

> dim(mtcars)
[1]  0 11
如果语句 构造
if
语句非常简单,这取决于您要检查的内容

对象为
NULL
*对象为
NULL
,没有行和列

if (dim(df) == NULL) {
}
没有争吵 此数据框有列,但没有观察值

没有专栏 *对象仍然是类
data.frame
,但没有数据

if (dim(df)[2] == 0) {

}
您可以这样构造对象(如果感兴趣):

数据(mtcars)

它取决于你的<代码>数据。框架< /> >实际上是空的,或者所有元素都是空的。

如果
data.frame
为空,可以使用
nrow
作为简单检查

tmp <- data.frame(A = numeric())
nrow(tmp)
[1] 0

if(nrow(tmp) == 0){
    print("data.frame is empty")
}else{
    print("data.frame contains data")
}

你认为数据框架中没有什么?没有争吵?没有专栏?二者都100%
NA
值?数据帧技术上不存在,因为数据通过一系列过滤器,我认为这就是问题所在,如果(存在(“df”)…
可以用来确定环境中是否存在
df
。如果数据框不存在,您将在当前代码中收到一个对象“df”not found错误。如果数据框是一个过滤器的产品,没有得到任何结果,那么数据框将不会为空,它将根本不存在。因此,命名数据帧不会得到我想要的结果,对吗?如果数据帧不存在,我怎么说?
if (dim(df)[2] == 0) {

}
data(mtcars)
mtcars <- mtcars[,-c(1:dim(mtcars)[2])]
tmp <- data.frame(A = numeric())
nrow(tmp)
[1] 0

if(nrow(tmp) == 0){
    print("data.frame is empty")
}else{
    print("data.frame contains data")
}
exists("tmp2")
[1] FALSE
exists("tmp")
[1] TRUE