R describeby函数下标越界错误

R describeby function subscript out of bounds error

我是 R 的新手,我正在尝试使用 psych 包中的 describeby 函数获取按多个变量分组的描述性统计数据。

这是我正在尝试的 运行:

JL <- describeBy(df$JL, group=list(df$Time, df$Cohort, df$Gender), digits=3, skew=FALSE, mat=TRUE)

我收到错误消息 Error in `[<-`(`*tmp*`, var, group + 1, value = dim.names[[group]][[groupi]]) : subscript out of bounds

我只在我的性别变量(在这个数据集中是二分法)中收到此错误消息。当我取出 mat=TRUE 参数时,我能够 运行 代码,并且我看到它正在为 Gender 使用 NULL 生成分组。我在其他答案中看到这与数组越界有关,但我不确定如何排除故障。任何建议表示赞赏。

非常感谢。

您可以使用 dplyr,添加一些自定义功能。

library(dplyr)

se <- function(x) sd(x, na.rm=TRUE)/sqrt(length(na.omit(x)))
rnge <- function(x) diff(range(x, na.rm=TRUE))

group_by(df, Time, Cohort, Gender) %>%
  summarise_at(vars(JL), .funs=list(n=length, mean=mean, sd=sd, min=min, max=max, range=rnge, se=se)) %>% 
  as.data.frame()

使用 mtcars 数据集:

group_by(mtcars, vs, am, cyl) %>%
  summarise_at(vars(mpg), .funs=list(n=length, mean=mean, sd=sd, min=min, max=max, range=rnge, se=se)) %>% as.data.frame()

  vs am cyl  n mean    sd  min  max range    se
1  0  0   8 12 15.1 2.774 10.4 19.2   8.8 0.801
2  0  1   4  1 26.0    NA 26.0 26.0   0.0    NA
3  0  1   6  3 20.6 0.751 19.7 21.0   1.3 0.433
4  0  1   8  2 15.4 0.566 15.0 15.8   0.8 0.400
5  1  0   4  3 22.9 1.453 21.5 24.4   2.9 0.839
6  1  0   6  4 19.1 1.632 17.8 21.4   3.6 0.816
7  1  1   4  7 28.4 4.758 21.4 33.9  12.5 1.798

使用 psych 包中的 describBy 函数 returns 你的错误:

library(psych)
describeBy(mtcars$mpg, group=list(mtcars$vs, mtcars$am, mtcars$cyl), digits=3, skew=FALSE, mat=TRUE)

Error in [<-(*tmp*, var, group + 1, value = dim.names[[group]][[groupi]]) : subscript out of bounds

因为数据中并不存在三组的所有组合。

with(mtcars,
     ftable(table(vs,am,cyl)))
#      cyl  4  6  8
#vs am             
#0  0       0  0 12
#   1       1  3  2
#1  0       3  4  0
#   1       7  0  0