我有一个数据框,我检查数据框的所有列是否都包含数值。
V1 V2 V3
1 114 9.078186 1.6310523
2 116 8.228931 1.6405415
3 117 8.043536 1.6625413
4 118 6.179346 0.8489116
我用
sapply(df,is.numeric)
返回
V1 V2 V3
TRUE TRUE TRUE
现在我如何检查所有列是否都是数字?我正在寻找类似的东西:
if(sapply(df,is.numeric)==TRUE)
print(" All are Numeric")
但它只检查一个条件,因为向量的长度不止一个所以它通过警告
Warning message:
In if (sapply(df, is.numeric) == TRUE):
the condition has length > 1 and only the first element will be used
答案 0 :(得分:4)
sapply返回一个True / False向量,您可以将条目视为1/0并检查总和是否等于列总数。
if(sum(sapply(df,is.numeric))==ncol(df))
print(" All are Numeric")
或者您可以使用all()函数
if(all(sapply(df,is.numeric)))
print(" All are Numeric")