データ間引き


#★間引きデータのディレクトリ
mabikidir<-"C:/Users/Documents"

#ファイルインプット
mfile <- dir(maikidir)
mfileno <- grep("csv",mfile)

Newfile<-paste(mabikidir,mfile[mfileno],sep="")
data<-read.csv(Newfile,header = TRUE,na.strings = "")

#★日付データに変換が必要なら
#data[,2]<-as.POSIXct(data[,2])
#data<-data[order(data[,1],data[,2]),]


IDTop<-!duplicated(data[,1])
IDEnd<-c(IDTop[-1],TRUE)

#間引く条件列
nawdata<-data[,3]
nextdata<-c(nawdata[2:length(nawdata)],0)

#★日付データに変換が必要なら
#neday<-as.POSIXct(neday,origin ="1970-1-1")

#★間引く条件
Exchange <- !IDEnd & nawdata > nextdata
Exchange <-Exchange | c(FALSE,Exchange[-length(Exchange)])

#★抜き出し条件
data2<-data[nawdata | nextdata | Exchange,]

#output
write.csv(data2,file="",row.names = F,header = T,na = "") ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

R

#データマージ

######ライブラリー#############
library(openxlsx)
library(data.table)
######マージ条件##################
#ファイルアドレス(入力ベース/入力マージ/入力マージフォルダ/出力)
basedir<-"C:/Users/p/Documents/out"
mdir<-"C:/Users/p/Documents/merge/in"
outdir<-"C:/Users/p/Documents/merge/out"

#ファイル拡張子(入力ベース/入力マージ/出力)
intype<-".csv"
mergetype<-".csv"
outtype<-".csv"

#ファイル名(入力/出力)
basefile<-"intest"
mfile<-"test1"
outfile<-"test"

#区切りタイプ csv "," tsv "/t"
inkugiri<-","
mkugiri<-","
outkugiri<-","

#マージキーの列No(ベース/後付け)
x<-c(1,2)
y<-c(1,2)

#マージデータの列No
mergeno<-c(1,2,8,9)

######マージ#####################
#ベースのデータ入力
infile<-paste(basedir,"/",basefile,intype,sep="")
dfbdata<-read.table(infile,header=T,na.strings = "",sep=inkugiri)
#マージするファイルの入力

dfmdata<-read.table(paste(mdir,"/",mfile,mergetype,sep=""),header=TRUE,na.strings = "",sep=mkugiri)
#マージするデータの抽出
#dfmdata<-dfmdata[dfmdata[,1] %in% "a",]
#マージ実行
dfbdata<-merge(dfbdata,dfmdata[,mergeno],by.x=x,by.y=y,all.x=T)
#データ出力
dir.create(outdir)
write.table(dfbdata,file=paste(outdir,"/",outfile,outtype,sep=""),sep=outkugiri,quote=FALSE,na="",col.names = TRUE ,row.names=FALSE)
# write.xlsx



#ファイル結合スクリプト

######ライブラリー#############
library(openxlsx)
library(data.table)
######結合条件##################
#ファイルアドレス(入力/出力)
indir<-"C:/Users/p/Documents/chain/in"
outdir<-"C:/Users/p/Documents/chain/out"

#ファイル拡張子(入力/出力)
intype<-".csv"
outtype<-".csv"

#ファイル名(出力)
file<-"test"

#区切りタイプ csv "," tsv "/t"
kugiri<-","

#結合するファイル数単位(全部結合する場合は0入力)
n<-5

#抜き出す列No
getcol<-c(1,2,3)

######結合#####################
#インプットファイルのファイルインプット
infilename <- dir(indir)
#結合する拡張子のNo
fileNo <- grep(intype,infilename)
#出力ファイル数の算出
j<-ceiling(length(fileNo)/n)
#結合ファイルNo
l<-0
#全結合
if( n==0){n=length(fileNo)}
#結合実施
for( i in 1:j){
outfile<-NULL
for( k in 1:n){
if(l+k > length(fileNo)) break
basefile<-read.table(paste(indir,"/",infilename[l+k],sep=""),header=TRUE,na.strings = "",sep=kugiri)
basefile<-basefile[,getcol]
outfile<-rbind(outfile,basefile)
}
l<-l+k
write.table(outfile,file=paste(outdir,"/",file,"_",i,outtype,sep=""),sep=kugiri,quote=FALSE,na="",col.names = TRUE ,row.names=FALSE)
# write.xlsx
}
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

テーマ : 今日のつぶやき。
ジャンル : 日記

プロフィール

abc

Author:abc
このブログの内容に真実はありません。

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR