优秀的编程知识分享平台

网站首页 > 技术文章 正文

R语言——几个基础统计(r语言统计学)

nanyue 2024-10-07 11:15:26 技术文章 17 ℃

今天在最基础的内容上坑了大半天,怎么也想不明白为啥跟官方答案对不上

晚上10点三刻开始码字,离上床睡觉的时限还有一刻钟,呜呜呜~~

#读取数据

Test <- read.csv("cs-test.csv")

共12列,其中前11列都是数值,第12列是目标变量,目前还没做分类,所以最后一列不要

然后,按要求先做个summary,由于summary函数的默认输出样式不太方便做后续处理,我决定拆分成单列再用apply整合

T1 <- Test[,-12]
#数值型变量Summary整理格式
Summarize <- function(x) {
S1 <- as.matrix(summary(x));
if (length(S1) ==6){
S1 <- rbind(S1,0) };
return(S1) }
#代入数据
So <- apply(T1,2,Summarize)
Titles <- c("Min.","1st Qu.","Median","Mean","3rd Qu.","Max.","NA counts")
SumOrigin <- data.frame(So, row.names = Titles)

输出的SumOrigin如下,看起来还可以:

#缺失行分隔:
Rna <- apply(Test[,-12],1,anyNA)
Known <- Test[!Rna,-12]

缺失数据的行有将近20%,又得哭一会~~~~

#离群值修正
#+/-1.5倍四分位距
L1 <-So[2,]-(So[5,]-So[2,])*1.5
H1 <-So[5,]+(So[5,]-So[2,])*1.5
#+/-3倍标准差
SD1 <- apply(T1,2,sd, na.rm = TRUE)
L2 <-So[4,]-SD1*3
H2 <-So[4,]+SD1*3
library("timeDate")
#峰度
Kt <- apply(T1,2,kurtosis, na.rm = TRUE)
#偏度
SK <- apply(T1,2,skewness, na.rm = TRUE)
#集中以上数据
Range <- data.frame(L1,H1,L2,H2,Kt,SK)

上边的L1、H1和L2、H2是用两种方式计算出的每列数据范围上下限

Kt为峰度,>0时为尖峰,<0时为扁平峰

SK为偏度,>0时右偏,<0是左偏

超时5分钟,挑战失败~~~~~

Tags:

最近发表
标签列表