数据处理小示例

根据股票收益率分类将数据进行分类
library(quantmod)
library(readr)
x1 <- read.csv("hsgp.csv",header = T)
x2 <- x1[-nrow(x1),]
a1 <- x2[sample(1:nrow(x2),1),1]
stock <- getSymbols(paste(a1,".sz",sep=""),from="2019-01-01",to="2021-10-21",auto.assign = F)
stock1 <- stock$`002490.SZ.Close`
stock2 <- lag(stock$`002490.SZ.Close`)
stock1$lag <- stock2
stock1$rct <- (as.numeric(stock1$X002490.SZ.Close)-as.numeric(stock1$lag))/as.numeric(stock1$lag)*100
stock1$rctlevel <- NA
stock1$rctlevel[as.numeric(stock1$rct) < -0.5 ] <- "暴跌"
stock1$rctlevel[as.numeric(stock1$rct)>= -0.5&as.numeric(stock1$rct)<0] <- "略跌"
stock1$rctlevel[as.numeric(stock1$rct)>0&as.numeric(stock1$rct)<=0.5] <- "略涨"
stock1$rctlevel[as.numeric(stock1$rct)>0.5] <- "暴涨"
stock1$rctlevel[is.na(stock1$rct)|as.numeric(stock1$rct)==0] <- "干嘛呢?"
将数据集state.x77中的收入进行分类,并计算每一类的收总和和平均收入
datax <- data.frame(state.x77)
range(datax$Income)
# [1] 3098 6315
class(datax$Income)
datax$level1 <- cut(datax$Income,
                    c(min(datax$Income),4500,5000,5500,6000,max(datax$Income)+1),right=F)
levels(datax$level1) <- c("低收入","中低收入","中等收入","中高收入","高收入")
datax1 <- datax[,c("Income","level1")]
datax2 <- melt(datax1,id=c("level1"))
datax3 <- dcast(datax2,level1~variable,function(x)sum(x,na.rm=T))
colnames(datax3) <-c("收入水平","totalIncome")
datax4 <- dcast(datax2,level1~variable,function(x)mean(x,na.rm=T))
colnames(datax4) <-c("收入水平","averageIncome")
colnames(datax2)[1] <- "收入水平"
datax5 <- merge(datax2,datax3,by="收入水平",all=T)
datax6 <- merge(datax5,datax4,by="收入水平",all=T)
datax6 <- datax6[,-2]
colnames(datax6)[2] <-"Income"
dataxx <- datax6[order(datax6$收入水平),]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值