r 类の値変动にフォーカスして改善ポイントを出す
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r 类の値変动にフォーカスして改善ポイントを出す相关的知识,希望对你有一定的参考价值。
# TODO: classの値変動にフォーカスして改善ポイントを出す
# TGT.c<-3 # ターゲットクラス
library("plyr")
library("dplyr")
library("stringr")
library("ggplot2")
library("ggrepel")
setwd("C:/Users/a_kawata/Desktop/workspace/2AutoReport/")
class.name="class.txt"
# o データ読み込み
list<-paste("query/",list.files("query"),sep="")
for( i in 1:length(list) )
assign(paste("ac",i,sep=""),read.csv(list[i],header=T,stringsAsFactors=F))
for( i in 1:length(list) ){
x<-get(paste("ac",i,sep=""))
# x$アカウント<-substr(list[i],9,14)
if( i == 1 )query<-x[-nrow(x),]
else query<-rbind(query,x[-nrow(x),])
}
# file.remove(paste("query/",list.files("query"),sep=""))
class<-read.table(class.name,stringsAsFactors = F)
ave<-read.csv("campaign_ave.csv",header=T,stringsAsFactors=F)
day.query<-cbind(as.Date(query[,1]),query[,-1])
colnames(day.query)[1]<-"日付"
c.base<-c("キャンペーン名","広告グループ名","キーワード","マッチタイプ")
# クラスで絞り込み
day.query<-left_join(day.query,class,by=c.base)
day.query<-subset(day.query,日付!=Sys.Date())
day.query<-subset(day.query,class==TGT.c)
# DCV == クラスを設定
day<-91
query.all<-subset(day.query,(max(day.query[,"日付"])-day<日付&日付<Sys.Date()))
query.all<-ddply(day.query,.(キャンペーン名,広告グループ名,キーワード,マッチタイプ),
colwise(sum,is.numeric))
query.all<-mutate(query.all,grp=round(コンバージョン数/90*7))[c(c.base,"grp")]
grp<-query.all
day.query<-left_join(day.query,query.all,by=c.base)
moveAverageKey<-function(keyword,move,period){
keyword<-ddply(keyword,.(日付,grp,キーワード,マッチタイプ),colwise(sum,is.numeric))
keyword<-keyword[c("日付","grp","キーワード","マッチタイプ","インプレッション数","クリック数","コンバージョン数","コスト")]
for( i in 1:move){
key.part<-subset(keyword,(max(day.query[,"日付"])-period-(i-1))<日付&日付<Sys.Date()-(i-1))
key.part$MOVE<-(i-1)
if( i == 1 )key<-key.part
else key<-rbind(key,key.part)
}
return(key)
}
query.tg<-moveAverageKey(day.query,7,7)
query.30<-moveAverageKey(day.query,7,30)
query.60<-moveAverageKey(day.query,7,60)
query.90<-moveAverageKey(day.query,7,90)
query.tg$PER<-7
query.30$PER<-30
query.60$PER<-60
query.90$PER<-90
query.all<-rbind(query.tg,query.30) %>% rbind(query.60) %>% rbind(query.90)
query.all<-ddply(query.all,.(grp,MOVE,PER),colwise(sum,is.numeric)) %>% mutate(CPA=コスト/コンバージョン数)
query.all<-mutate(query.all,DCV=コンバージョン数/PER)
query.all<-mutate(query.all,CTR=(クリック数/インプレッション数)*100)
query.all<-mutate(query.all,CVR=(コンバージョン数/クリック数)*100)
query.all<-mutate(query.all,DCO=コスト/PER)
query.all<-na.omit(query.all)
melt.c<-c("grp","MOVE","PER","CPA","DCV","DCO","CTR","CVR")
query.gg<-melt(query.all[melt.c],id=c("grp","MOVE","PER"),na.rm=TRUE)
g<-ggplot(query.gg,aes(x=MOVE,y=value,colour=as.factor(PER))) + geom_line() + geom_point() + facet_wrap(grp~variable,scales="free")
print(g)
for( day in c(7,30,60,90) ){
assign(paste("day.query",day,sep="."),subset(day.query,(max(day.query[,"日付"])-day<日付&日付<Sys.Date())))
assign(paste("day.query",day,sep="."),ddply(get(paste("day.query",day,sep=".")),.(キャンペーン名,広告グループ名,キーワード,マッチタイプ),colwise(sum,is.numeric)))
assign(paste("day.query",day,sep="."),get(paste("day.query",day,sep="."))[-15])
assign(paste("day.query",day,sep="."),left_join(get(paste("day.query",day,sep=".")),grp,by=c.base))
assign(paste("day.query",day,sep="."),left_join(get(paste("day.query",day,sep=".")),campaign,by="キャンペーン名"))
#assign(paste("grp",day,sep="."),ddply(get(paste("day.query",day,sep=".")),.(grp),colwise(sum,is.numeric)) %>% mutate(CPA=コスト/コンバージョン数) %>% na.omit())
#assign(paste("grp",day,sep="."),get(paste("grp",day,sep="."))[c("grp","インプレッション数","クリック数","コンバージョン数","コスト","CPA")])
}
### LOOP 処理
day.query.34<-day.query.30
input2<-""
while( input != "end" ){
print("90日間の獲得コンバージョン数ごとのキーワード郡")
print(day.query.34[,"grp"] %>% table)
input2<-readline()
if( input2 == "end" )break
if( as.numeric(input2) < 7 ){
TGT.g<-input2
source("pj35.R",encoding="UTF-8") # 90日獲得CVでクラス分け
next
}
#if( as.numeric(input2) >= 7 ){
# day<-as.numeric(input2)
# day.query.tg<-subset(day.query,(max(day.query[,"日付"])-day<日付&日付<Sys.Date()))
# day.query.tg<-subset(day.query,grp==grp)
# print(day.query.tg)
#}
# print(subset(day.query)) # 90日獲得CVでクラス分け
}
以上是关于r 类の値変动にフォーカスして改善ポイントを出す的主要内容,如果未能解决你的问题,请参考以下文章
csharp FromComponentInNewPrefabメソッドは,引数の预制をインスタンス化してアタッチされたコンポーネントを注入するhttp://negi-lab.blog.jp/Zenje
html jQueryフォームにテキストを入れておき,フォーカスで消す
xml 【WPF】コントロールのフォーカスのと风格FocusVisualStyle
csharp 标准の数値书式指定文字列とかカスタム书式とか的ToString(字符串)メソッドなどで,数値のフォーマットを指定して文字列で表现することができます。たまにしか使わないから忘れちゃうんです