write.csv(r1,"bb.csv",row.names = FALSE)
#分组求加权平均也可以这样:
a2b3111<-a2b31%>%group_by(AC)%>%summarise(SY=weighted.mean(Mretwd, Msmvosd))
# 从回归中取数字的范例
as.matrix(lm(eMretwd~ecm,y5)$coefficients)[2]
summary(lm(rje~rme,r10))$adj.r.squared
summary(lm(rje~rme,r10))$coefficients[6]
# 提截距项的t值
aa<-as.matrix(summary(lm(eMretwd~ecm,filter(y5,Stkcd==2)))$coefficients)[1,3]
##
as.matrix(select(as.data.frame(summary(lm(rje~rme,r10))$coefficients),3))[2]
p<-filter(r4,Stkcd==600983);summary(lm(rje~rme,p))
pp<-filter(r4,Stkcd==600983)
a<-t.test(d21$ew)
class(a)
mode(a)
ls(a)
a<-t.test(d21$ew)$statistic[[1]] # 去行名
sum(is.na(b3))
l<-na.omit(b1)
VaR(r7$rme,p=.95,method = "historical")
nrow(distinct(y12,Stkcd))
y5<-y4
p<-lapply(paste0("y",6:8),get)
for(i in 1:3){print(mean(p[[i]]$Mretwd))}
# 循环语句
a=numeric()
for(i in 1:6){a[i]=i*2}
b=2
i=1
while(b[i]<121){
i=i+1
b[i]=b[i-1]+2
}
#
# 在每个列表里赋值
a=list()
for(v in 1:3){
a[[v]]=data.frame(a=1:v)}
a=list(1,2,3)
for(v in 1:3){
for(i in 1:3){
a[[v]][i]=i+v}}
a=list(list(1,2,3),list(1,2,3),list(1,2,3))
for(v in 1:3){
for(i in 1:3){
for(o in 1:3){
a[[v]][[i]][o]=i+v+o}}}
#
p<-as.data.frame(lapply(paste0("y",6),get))
l1<-read.csv("l1.csv",stringsAsFactors = FALSE)
c2<-mutate(c1,t=ifelse(rje>frje&rme>b,1,0),tt=ifelse(rme>b,1,0)) #if 语句
remove()
b<-distinct(r,Trdmnt,.keep_all = TRUE)
a<-data.frame(Trdmnt=as.numeric(str_sub(b$Trdmnt,start = 1L, end = 4L)))%>%tbl_df()
a1<-group_by(a,Trdmnt)%>%summarise(n=n())
mean(a1$n) # 平均每年的交易日
# 筛选出上市时期不大于5年窗口期第一个交易日的股票
r1<-filter(r1,List<=min(r1$Trdmnt))
# 筛选出上市时期不大于5年窗口期第一个交易日的股票
y55<-filter(y55,List<=min(y55$Trdmnt))
# X是否属于y
x %in% y
# 把所有文件储存为RDATA格式
save.image("E:/R/tail risk/nsure/control.RData")
save.image("E:/R/tail risk/table/famc10.RData")
load("E:/R/tail risk/nsure/control.RData")
# 把时间改成数字并挑选其中的字符。
(data.frame(select(r5,-2),Trdmnt=as.numeric(str_sub(str_replace_all(r5$Trddt,"-",""),start=1L,end=6L))))[,c(1,6,3,4,5)]
# 移动求和或平均
x <- 1:100
filter(x, rep(1, 2), sides = 1)
# 移动作差
diff()
# 筛选出出具有规律排序的数字
filter(jo%in%c(1+2*(0:143)))
# 数组:
xx <- array(1:24, c(3, 4, 2))
# 矩阵:
matrix(1:6,2,3,byrow=F)
#do.call 函数:告诉list一个函数,然后list里的所有元素来执行这个函数
list<-list(matrix(1:25, ncol = 5), matrix(4:28, ncol = 5), matrix(21:45, ncol=5))
list.sum<-do.call(cbind,list)
# 循环赋值:
for(i in 0:19){assign(paste("a1b1",i+1,sep=""),mean(1+i))}
#增加一行/#增加一列
rbind(mat, c(6, 11))
cbind(mat, c(11,12,13,14,15))
data2<-cbind(data1[,1:2],y,data1[,3:ncol(data1)])# 指定位置插入一行
#终止循环函数:
a=1;b=1;i=0
for(i in 1:10){if(i==8) break
a[i]=i}
#β计算公式
summarise(β=cov(Dretwd,Cdretwdos)/var(Cdretwdos))
# 更新R及Studio
install.packages("installr")
library(installr)
updateR()
update.packages()
updateR(fast=TRUE,cran_mirror="https://mirrors.ustc.edu.cn/CRAN/")
# 直接回归求出的残差与自己计算得出的残差一样,但是回归方程中得出的残差标准差不同。
# 日期格式不能相当于数字来用,就算转换为数字,值也不同。
# 字符因子化
a<-slice(r,1:100)
d<-as.Date(a$Trdmnt,"%Y-%m-%d")
a4<-weekdays(d)
a5<-factor(a4,levels=c("星期三","星期四","星期五","星期一","星期二"))
a6<-as.numeric(a5)
a7<-data.frame(t=a5,n=a6)
a5<-factor(ind$pro)
# 将数据框中每一行重复4遍:
a<-cs1[rep(1:33,each=4),]
# 生成连续数列
seq(from=1, to=5, by=2)
## 时间序列 :seq.Data()
seq(as.Date("1999/1/1"),as.Date("2000/1/1"),"month")
#利用data.frame生成表格时,可以每列不同行数,但是每列行数需成整数倍数。
# 分位数函数 quantile,截取分位数
a<-quantile(c(1,2,3,4,5),probs=seq(0,1,by=0.1))
quantile(c(1,2,3,4,5),c(0.1,0.2))
# 数字筛选
x<-as.numeric(c(60:90,1,2,6,7))
x[x>2&x<70]
# 查看包的帮助
library(help="lmtest")
help.search("cluster") # 搜索主题
vignette("utils") # 打开PDF的指南
## 聚集稳健标准误
library(sandwich)
library(lmtest)
coeftest(result,vcov. = vcovHC(result,method='white1',type='HC1',cluster=c("group","time")))
coeftest(result,vcov. = vcovHC(result,cluster=c("group","time")))
# 去尾:缩尾
s<-as.numeric(quantile(y12[,3],c(0.01,0.99)))
s1<-select(y12,1:2,3)%>%mutate(tβ=ifelse(tβ<s[1],s[1],ifelse(tβ>s[2],s[2],tβ)))
s<-as.numeric(quantile(y12[,4],c(0.01,0.99)))
s2<-select(y12,4)%>%mutate(crisk=ifelse(crisk<s[1],s[1],ifelse(crisk>s[2],s[2],crisk)))
s<-as.numeric(quantile(y12[,5],c(0.01,0.99)))
s3<-select(y12,5)%>%mutate(brisk=ifelse(brisk<s[1],s[1],ifelse(brisk>s[2],s[2],brisk)))
ss<-lapply(paste0("s",1:3),get)
y12<-do.call(cbind,ss)
# 判断数字有多少个
length(Stkcd)
#函数调用,调用缩尾.
source("E:/R/function/winsorize.R")#“预装“函数,预装之后发生错误。可以不预装直接设定.
#生成函数中,函数中赋值的值不会出现在工作环境中。
winsorize(y12)
rm(b) # 消除函数
# source()保存的函数 只能是当时的工作环境不能随意转换。
# 批量读取:
path<-"E:/R/tail risk/nsure/regress"
a<-dir(path)
for (i in 1:9){assign(paste("regress",i,sep=""),read.csv(file = paste(path,a[i],sep = "/")))}
#批量写出
a<-lapply(paste0("regress",1:2),get)
for (i in 1:2){write.csv(a[[i]],file=paste0("E:/R/tail risk/nsure/regress/","a",i,".csv"),row.names = FALSE)}
R语言心得笔记(实时更新)
最新推荐文章于 2021-11-30 16:49:04 发布