2017-08-17 6 views
0

私は現在、2つのデータフレームを持っています.1つのDFには〜100,000行が含まれ、もう1つには〜1000しかありません。私は、これは簡単にExcelで開かれ、2つのデータフレームを同じファイルにエクスポートする

write.table(DF_1, file = paste("DF_one.csv"), 
     row.names = F, col.names = T, sep = ",") 

がうまく機能...以下のとおりはwrite.table機能を使用して、これらのいずれか1エクスポートすることができます。問題は、私は非常に同じExcelファイルに他のデータフレームを含める必要があり、私はこれを行う方法やそれが可能であるかどうかはわかりません。

私は何らかのアイデアを公開しており、以下に示すいくつかのサンプルデータを提供しています。

#Example data for data frame one, length =30 
Dates<-c(Sys.Date()+1:30) 
Data1<-c(1+1:30) 

#Data Frame One 
Df1<-data.frame(Dates,Data1) 

#Example data for data rame two, length=10 
Letters<-c(letters[1:10]) 
Data2<-c(1:10) 

#Data Frame Two 
Df2<-data.frame(Letters,Data2) 

#Now, is there a way can we export both to the same file? 

#Here is the export for just data frame one 
write.table(Df1, file = paste("DFone.csv"), 
     row.names = F, col.names = T, sep = ",") 

「2つのファイルをエクスポートしてからExcelにマージすることをやめてください」などのアイデアがあります。

研究が行わ:

が、私はこのアプローチが好きではなく、垂直 の水平方向の形式(私はおそらくただうるさいすべきではない)

How to merge multiple data frame into one table and export to Excel?

How to write multiple tables, dataframes, regression results etc - to one excel file?

ありがとうを好むだろうすべての助け!

+0

上の別の質問から適応されたあなたは 'dput(ヘッド(DF1))を示しできます'と 'dput(ヘッド(DF2))'?また、希望の出力がどのように表示されるかを示します。 – Masoud

+1

既存のcsvに列を追加したいという意味の「横書式」の場合、これはできません。これはRとは関係なく、csvがデスクに格納される方法です。 – BICube

+0

@Alaおそらく、私は基本的に同じExcelファイルに2つのデータフレームを表示しようとしています。フォーマットされているので、それらは互いに重なり合っているのではなく、隣り合っています。もう一度このことが可能かどうかわからない... – Chabo

答えて

0

これはあなたが望む情報構造を保持しているかどうかはわかりませんが、実際には同じテーブルに入れて次のことができますか?

Both <- data.frame(Df1,Df2) 

write.table(Both, file = paste("DF_Both.csv"), 
    row.names = F, col.names = T, sep = ",") 

最初の解決策は、データフレームをExcelスプレッドシートの複数のタブに保存するもう1つの要件です。

install.packages("xlsx") 
library(xlsx) 

###Define the save.xlsx function 

save.xlsx <- function (file, ...) 
{ 
    require(xlsx, quietly = TRUE) 
    objects <- list(...) 
    fargs <- as.list(match.call(expand.dots = TRUE)) 
    objnames <- as.character(fargs)[-c(1, 2)] 
    nobjects <- length(objects) 
    for (i in 1:nobjects) { 
    if (i == 1) 
     write.xlsx(objects[[i]], file, sheetName = objnames[i]) 
    else write.xlsx(objects[[i]], file, sheetName = objnames[i], 
        append = TRUE) 
    } 
    print(paste("Workbook", file, "has", nobjects, "worksheets.")) 
} 

### Save the file to your working directory. 

save.xlsx("WorkbookTitle.xlsx", Df1, Df2) 

全discolsureこれは、スタックオーバーフローR dataframes to multi sheet Excel Work

+0

私はこのプログラミングが簡単だったと思います。同じサイズ(行数)ではないので、 'data.frame(df1、df2)'を実行できないと思いませんか? – Masoud

+0

@Masoudは正しいですが、データフレームは長さの違いによりマージできませんが、それでも助けてくれてありがとうございます – Chabo

+0

Df1の行数は、提供されたDf2の行数の乗算例。しかし、これは一般化しません。 – BICube

関連する問題