NA值和R聚合函数
这是一个缺少值的简单数据框:
M = data.frame(Name = c(‘name’,’name’),Col1 = c(NA,1),Col2 = c(1,1)) 当我以这种方式应用聚合M: aggregate(。?Name,M,FUN = sum,na.rm = TRUE) 结果是: RowName Col1 Col2 name 1 1 所以整个第一行都被忽略。但如果我这样做 聚合(M [,2:3],by = list(M $ Name),FUN = sum,na.rm = TRUE) 结果是 Group.1 Col1 Col2 name 1 2 所以只忽略(1,1)条目。 这导致我的一个代码中的一个主要的调试头痛,因为我认为这两个调用是等效的。有没有一个很好的理由为什么“公式”输入法被不同的对待? 谢谢。
好的问题,但在我看来,这不应该引起主要的调试头痛,因为在手册页面的多个地方记录得很清楚。
首先,在使用部分: ## S3 method for class 'formula' aggregate(formula,data,FUN,...,subset,na.action = na.omit) 后来在说明中:
我不能回答为什么公式模式的写法不同—这是函数作者必须回答的 – 但是使用上面的信息,你可以使用以下内容: aggregate(.~Name,M,FUN=sum,na.rm=TRUE,na.action=NULL) # Name Col1 Col2 # 1 name 1 2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |