计算数据帧中的非 NA;将答案作为向量
假设我有以下 R data.frame ZZZ
:
( ZZZ <- structure(list(n = c(1, 2, NA), m = c(6, NA, NA), o = c(7, 8,
8)), .Names = c("n", "m", "o"), row.names = c(NA, -3L), class = "data.frame") )
## not run
n m o
1 1 6 7
2 2 NA 8
3 NA NA 8
我想以向量的形式知道我有多少个非 NA。我希望得到的答案是:
2, 1, 3
当我使用命令 length(ZZZ)
时,我得到 3
,这当然是 中向量的数量data.frame,一条足够有价值的信息。
我还有其他函数可以在此 data.frame 上运行,并以向量的形式给出答案,但是,天哪,长度并不是这样运行的。
Say I have the following R data.frame ZZZ
:
( ZZZ <- structure(list(n = c(1, 2, NA), m = c(6, NA, NA), o = c(7, 8,
8)), .Names = c("n", "m", "o"), row.names = c(NA, -3L), class = "data.frame") )
## not run
n m o
1 1 6 7
2 2 NA 8
3 NA NA 8
I want to know, in the form of a vector, how many non-NAs I've got. I want the answer available to me as:
2, 1, 3
When I use the command length(ZZZ)
, I get 3
, which of course is the number of vectors in the data.frame, a valuable enough piece of information.
I have other functions that operate on this data.frame and give me answers in the form of vectors, but, dang-it, length doesn't operate like that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
矢量化。
Vectorisation ftw.
尝试一下:
运行后:
如果您确实坚持返回向量,则可以使用
as.vector
,例如通过定义此函数:您可以简单地运行
nonNAs(ZZZ)
:Try this:
Having run:
If you really insist on returning a vector, you might use
as.vector
, e.g. by defining this function:You could simply run
nonNAs(ZZZ)
:要获取缺失值的总数,请使用 sum(is.na(x)) ,要按列使用 colSums(is.na(x)) ,其中 x 是包含数据集的变量
For getting total no of missing values use sum(is.na(x)) and for colum-wise use colSums(is.na(x)) where x is varible that contain dataset
如果您只想要 NA 的总和,那么 sum() 和 !is.na() 就可以做到:
If you only want the sum total of NAs overall, then sum() with !is.na() will do it: