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(字符串)メソッドなどで,数値のフォーマットを指定して文字列で表现することができます。たまにしか使わないから忘れちゃうんです

php カスタム投稿の子カテゴリ记事一覧表示(アクセスしているカテゴリーアーカイブを自动判别)

javascript 入力シートをコピーして指定の范囲のセルの値を初期化する。