R语言心得笔记(实时更新)

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(=ifelse(<s[1],s[1],ifelse(>s[2],s[2],)))
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)}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值