如何计算逻辑向量中的行数

时间:2018-05-10 13:20:46

标签: r

我有一个名为source的数据框,看起来像这样

185  2002-07-04      NA      NA 20
186  2002-07-05      NA      NA 20
187  2002-07-06      NA      NA 20
188  2002-07-07  14.400   0.243 20
189  2002-07-08      NA      NA 20
190  2002-07-09      NA      NA 20
191  2002-07-10      NA      NA 20
192  2002-07-11      NA      NA 20
193  2002-07-12      NA      NA 20
194  2002-07-13   4.550   0.296 20
195  2002-07-14      NA      NA 20
196  2002-07-15      NA      NA 20
197  2002-07-16      NA      NA 20
198  2002-07-17      NA      NA 20
199  2002-07-18      NA      NA 20
200  2002-07-19      NA   0.237 20

当我尝试

> nrow(complete.cases(source))

我只得到NULL

有人可以解释为什么会出现这种情况,如何计算没有NA或NaN值的行数?

3 个答案:

答案 0 :(得分:3)

而是使用$mainArray = array( 'compression' => array('7z', 'cbr', 'deb', 'gz', 'pkg', 'rar', 'rpm', 'sitx', 'tar.gz', 'zip', 'zipx'), 'scripts' => array('php', 'js', 'css', 'asp', 'aspx', 'htm', 'html', 'cc', 'cpp', 'py', 'jsp'), 'documentType' => array('txt', 'doc', 'docx', 'log', 'rtf'), ); foreach($mainArray as $key=>$value){ if (in_array(strtolower('php'), $value)){ // Return only if found during the loop return $key; } } 。虽然最安全的选项是sum(因为它可以同时处理data.frams和vector)

NROW

或者,如果您坚持使用sum(complete.cases(source)) #[1] 2

nrow

说明:nrow(source[complete.cases(source), ]) #[1] 2 返回一个逻辑向量,指示哪些情况(在您的情况下是行)是完整的。

样本数据

complete.cases

答案 1 :(得分:0)

complete.cases返回一个逻辑向量,指示完成的行。由于向量没有行属性,因此您无法在此处使用nrow,但正如其他人sum所建议的那样。使用sumTRUEFALSE会在内部转换为10,因此使用sum会计算TRUE的值sum(complete.cases(source)) # [1] 2 你的矢量。

data.frame

如果您对排除所有非完整行后遗留的na.exclude更感兴趣,可以使用data.frame。这会返回nrow,您可以使用nrow(na.exclude(source)) # [1] 2 na.exclude(source) # V2 V3 V4 V5 # 188 2002-07-07 14.40 0.243 20 # 194 2002-07-13 4.55 0.296 20

{{1}}

答案 2 :(得分:0)

你甚至可以尝试:

source[rowSums(is.na(source))==0,]
#     V1         V2    V3    V4 V5
# 4  188 2002-07-07 14.40 0.243 20
# 10 194 2002-07-13  4.55 0.296 20

nrow(source[rowSums(is.na(source))==0,])
#[1] 2