R中的新编码需要一些帮助
我想说: 如果数据框中没有任何内容打印no_match 如果有什么东西将它绑定到df2的ID
if(df == []){
print("nomatch")
}else{
cbind(df, df2$id2)
}
答案 0 :(得分:7)
您可以通过dim
获取有关数据框尺寸的信息。例如,运行代码:
data(mtcars)
dim(mtcars)
会显示尺寸:
[1] 32 11
对于NULL
对象,您将得到:
mtcars <- NULL
dim(mtcars)
NULL
dim
非常灵活,例如data.frame
没有行:
mtcars <- mtcars[-c(1:dim(mtcars)[1]),]
你会得到
> dim(mtcars)
[1] 0 11
构建if
语句非常简单,取决于您想要检查的内容
NULL
*对象为NULL
,没有行且没有列。
if (dim(df) == NULL) {
}
此数据框包含列,但没有观察结果。
if (dim(df)[1] == 0) {
}
*对象仍属于data.frame
类,但没有数据。
if (dim(df)[2] == 0) {
}
你会像那样构建对象(如果感兴趣的话):
data(mtcars)
mtcars <- mtcars[,-c(1:dim(mtcars)[2])]
当然,您可以结合使用条件来检查两个数据帧或为空的的一个事件。
答案 1 :(得分:5)
这取决于你的data.frame
实际上是空的还是你认为空的所有元素。
如果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")
}
编辑 - OP询问对象是否存在
您可以使用exists
exists("tmp2")
[1] FALSE
exists("tmp")
[1] TRUE