mean()返回数据帧子集的NaN

时间:2019-04-22 15:15:02

标签: r

我得到的平均值为(group2 $ score)的NaN结果。我正在尝试创建一个函数来列出我的数据的描述性统计信息。

printf <- function (...) {
    cat(sprintf(...))
}

data <- data.frame(
    id <- c(1:200),
    group <- c(replicate(100, 1), replicate(100, 2)),
    score <- rnorm(200, mean = 100, sd = 15)
)

descriptives <- function (data) {
    group1 <- data[data$group <= 100, ]
    group2 <- data[data$group >= 101, ]
    printf("group 1 mean: %.2f\n", mean(group1$score))
    printf("group 2 mean: %.2f\n", mean(group2$score)) #this is where the NaN gets printed
}

descriptives(data)

2 个答案:

答案 0 :(得分:1)

这通常意味着该子集中没有数据。

mean(numeric(0))
[1] NaN

您的数据肯定是这种情况,因为组变量为1或2,并且您尝试将其拆分为100。

答案 1 :(得分:1)

对不起,刚意识到我本打算使用$group时才使用$id。在公共场所张贴后,总是更容易发现错误!