在r中创建具有描述符统计信息的表

在r中创建具有描述符统计信息的表,r,R,我有一个多变量的数据,有不同的类别,整数和因子 我的目标是使用描述性统计信息创建输出,例如: 对于整数变量,仅显示平均值和标准偏差 对于因子变量,显示频率 有一个简单的纸条来做吗 谢谢 Romeu您可以执行以下操作 colNames = colnames(df) res = list() for(i in colNames){ res[[i]] = switch(class(df[,i]), numeric={ list(mean=mean(df[,i

我有一个多变量的数据,有不同的类别,整数和因子

我的目标是使用描述性统计信息创建输出,例如:

对于整数变量,仅显示平均值和标准偏差 对于因子变量,显示频率 有一个简单的纸条来做吗

谢谢 Romeu

您可以执行以下操作

colNames = colnames(df)
res = list()
for(i in colNames){
  res[[i]] = switch(class(df[,i]),
         numeric={
           list(mean=mean(df[,i]),sd=sd(df[,i]))
         },
         factor={
           list(table(df[,i]))
         })
}

我刚刚给出了大概的路线,你可以根据自己的使用情况进行更改。然后按照您想要的方式创建一个表。

我想这会满足您的要求:

stat <- function(x) {
  sd <-  if(is.numeric(x))  sd(x) 
  mean <-  if(is.numeric(x)) mean(x)
  Freq <- if(is.factor(x)) table(x)
  z <- rbind(sd, mean, Freq)
  return(z)
}

lapply(df, function(x) stat(x))       #assuming your data.frame is called df
输出基于此df:

df <- structure(list(Category = structure(c(2L, 5L, 7L, 6L, 4L, 1L, 
10L, 3L, 8L, 9L), .Label = c("A", "E", "G", "I", "K", "L", "M", 
"N", "Q", "S"), class = "factor"), n = c(163051L, 127133L, 106680L, 
64868L, 49701L, 47387L, 47096L, 45601L, 40056L, 36882L), test = 1:10), .Names = c("Category", "n", "test"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame")
您可以在pastecs包中使用stat.desc函数。 如果df是您的数据集,那么

desc_stats <- stat.desc(df[,c("col1","col2",....)])

当您谈论数据时,是一个data.frame还是data.table,还是每个都是单独的变量?summary会给您一些接近的信息。它是一个data.frame。我用它来输入r read.csvC:/Users/Eventos/Desktop/ROMEU/Trabalhos/Estatística/dr_gustavo/1993_2013_originar_l.csv,header=T,sep=\T,na.strings=NAI know,但我有一个6665行115列的数据。
desc_stats <- stat.desc(df[,c("col1","col2",....)])