gpt4 book ai didi

r - 如何避免 dcast() 输出中的 NA 列?

转载 作者:行者123 更新时间:2023-12-01 03:11:10 26 4
gpt4 key购买 nike

如何避免 reshape2 包的dcast() 输出中的NA 列?

在这个虚拟示例中,dcast() 输出将包含一个 NA 列:

require(reshape2)
data(iris)
iris[ , "Species2"] <- iris[ , "Species"]
iris[ 2:7, "Species2"] <- NA
(x <- dcast(iris, Species ~ Species2, value.var = "Sepal.Width",
fun.aggregate = length))
## Species setosa versicolor virginica NA
##1 setosa 44 0 0 6
##2 versicolor 0 50 0 0
##3 virginica 0 0 50 0

对于有点类似的用例,table() 确实有一个选项可以避免这种情况:

table(iris[ , c(5,6)], useNA = "ifany")  ##same output as from dcast()
## Species2
##Species setosa versicolor virginica <NA>
## setosa 44 0 0 6
## versicolor 0 50 0 0
## virginica 0 0 50 0
table(iris[ , c(5,6)], useNA = "no") ##avoid NA columns
## Species2
##Species setosa versicolor virginica
## setosa 44 0 0
## versicolor 0 50 0
## virginica 0 0 50

dcast() 是否有类似的选项可以删除输出中的 NA 列?如何避免获得 NA 列? (这个函数有许多相当神秘的选项,这些选项被严格记录,但我不太明白......)

最佳答案

这是我如何绕过它的:

iris[is.na(iris)] <- 'None'

x <- dcast(iris, Species ~ Species2, value.var="Sepal.Width", fun.aggregate = length)

x$None <- NULL

想法是将所有 NA 替换为“None”,以便 dcast 创建一个名为“None”而不是“NA”的列。然后,如果不需要,您可以在下一步中删除该列。

关于r - 如何避免 dcast() 输出中的 NA 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32931473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com