带有嵌入向量的Psych函数descripe()返回变量中的错误

带有嵌入向量的Psych函数descripe()返回变量中的错误,r,for-loop,psych,describe,R,For Loop,Psych,Describe,我想使用描述嵌入在其他向量中的传递向量,以便在for循环中使用该函数。 我有以下数据,其中包含一组学生的成绩。 我想得到130名学生被分成的5个不同组的描述性统计数据,所以我为每个组创建一个子集 pr3 <- read.csv("data.csv", head = T, sep = ";") G1A <- subset(pr3, group == "1A") G1B<- subset(pr3, group == "1B") 但是,将子集分组为向量名称并传递名称索引进行描

我想使用描述嵌入在其他向量中的传递向量,以便在for循环中使用该函数。 我有以下数据,其中包含一组学生的成绩。 我想得到130名学生被分成的5个不同组的描述性统计数据,所以我为每个组创建一个子集

pr3 <- read.csv("data.csv", head = T, sep = ";")

G1A <- subset(pr3, group == "1A")
G1B<- subset(pr3, group == "1B")


但是,将子集分组为向量名称并传递名称索引进行描述将不起作用:

names <- c(G1A, G1B)
describe(names[1])

Error in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) : 
  is.atomic(x) is not TRUE
In addition: Warning message:
In mean.default(x, na.rm = na.rm) :
  argument is not numeric or logical: returning NA
>


如何使其工作?

您不能将子集/数据帧放在向量中,并以这种方式调用它们

如果你调用strnames[1]来查看向量的结构,你就会明白为什么它不起作用

相反,您可能希望将这两个数据帧放在一个列表中,以便用第二行调用它们。像这样:

names <- list(G1A, G1B)
describe(names[1])
names <- list(G1A, G1B)
describe(names[1])