可以直接复制到R运行
library(tidyverse)
data=data.frame(
row.names = c('QWE','TYE','WUN','EJN','JDB',
'wuy','okf','Aqe','Bdf','wty') ,
Chinese = c(50, 60, 64, 55, 59,
54, 61, 63, 64, 66 ),
Math = c(72, 68, NA, 29, NA,
45, 76, 74, 76, 75 ),
gender = c(1, 2, 1, 2, 2, 2,1,1,2,1),
smoke = c('y','n','y','y','y','n','n','y','n','y'),
bmi = c('正常','低体重','正常','超重','肥胖',
'低体重','超重','正常','低体重','正常')
)
describe<-function(x,na.omit=TRUE){
if (na.omit)
Miss<-sum(is.na(x)==TRUE)
x<-x[!is.na(x)]
m<-mean(x)
n<-length(x)
s<-sd(x)
skew<-sum((x-m)^3/s^3)/n
kurt<-sum((x-m)^4/s^4)/n-3
Normal_ks=ks.test(x,"pnorm")[["p.value"]]
return(round(c(n=n,Miss=Miss,mean=m,stdev=s,
skew=skew,kurtosis=kurt,
Normal_ks=Normal_ks
),3))
}
b1 <- data %>%
filter(gender==1) %>%
select(Chinese,Math) %>%
sapply(describe)
b2 <- data %>%
filter(gender==2) %>%
select(Chinese,Math) %>%
sapply(describe)
cbind(b1,b2) %>% print()
describe_by<-function(x,na.omit=TRUE)sapply(x,describe,na.omit=TRUE)
a=by(data[,c('Chinese','Math')],data$gender,describe_by)
a
cbind(a[["1"]],a[["2"]])
describe_by<-function(x,na.omit=TRUE)sapply(x,describe,na.omit=TRUE)
myvars <- c('Chinese','Math')
by(data[myvars],
list(xingbie=data$gender,
xiyan=data$smoke),
FUN=describe_by)
library(Hmisc)
describe(data$age)
describe(data[data$nq101==1,]$age)
quantile(data[data$nq101==1, ]$age, p = c(0.05,0.25, 0.5, 0.75))
quantile(data$age, p = c(0.05,0.25, 0.5, 0.75))
library(purrr)
map(data[data$group=="case",1:2],mean)
aggregate(x=list(),
by=list(),
FUN=
)
fenlei1 <- aggregate(x=list(Q=data$Sepal.Length),
by=list(group=data$Species),
FUN=mean,
)
fenlei1
summary(data[data$Species=='virginica',]$Sepal.Length)
mean(data[data$Species=='virginica',]$Sepal.Length)