2017-08-21 4 views
1

エクセルファイル内のカラムを正しい方法でフォーマットしようとしています。まず第一に、私はExcelがいくつかの奇妙な遺伝子名をの日付としばしば科学で起こると思います。だから通常、txtファイルからExcelにデータをインポートするときに、私は遺伝子名の列を選択し、一般からのテキストを保存側に変更します。 xlsxを使用してExcelシートを作成すると、これが起こるのは間違いありません。 現時点では、この動作を再現しようとしましたが、すべての列は一般と書式が設定されていますが、特定の列をテキストに強制するのが大好きです。xlsx rパッケージ内のテキストとしての遺伝子名の書式設定

これはどういうことですか?

df <- data.frame(a=c(1,2), 
       b=c('SEPT2', 'MARCH1'), 
       c=c('1,2', '1,4'), 
       d=c('1.2', '1.4'), 
       e=c('2-SEP', '1-MARCH'), 
       f=c('APR-1', 'DEC-1')) 
wb <- xlsx::createWorkbook() 
sheet1 <- xlsx::createSheet(wb, sheetName='test') 
xlsx::addDataFrame(df, sheet1, 
        col.names=TRUE, row.names=FALSE) 
xlsx::saveWorkbook(wb, 'test.xlsx') 

b、e、fの各列をテキストとして整形するのが大好きです。

EDIT

私は、科学的表記法については、例えば、より書式設定値を見つけることができるか、コメントに求めていたことから、私はこのhereを見つけました。

text_format = CellStyle(wb, dataFormat=DataFormat("@")) 
scientific_format <- CellStyle(wb, dataFormat=DataFormat('0.00E+00')) 
+0

XLConnectはxlsxよりも堅牢な書式設定機能を提供します(少し複雑ですが)。ドキュメントはこちら、setDataFormat:https://cran.r-project.org/web/packages/XLConnect/XLConnect.pdf –

答えて

1

あなただけの形式仕様を作成し、colStyle引数でaddDataFrameに追加する必要があります。

wb <- xlsx::createWorkbook() 
sheet1 <- xlsx::createSheet(wb, sheetName='test') 

## Create the format specification 
TextFormat = CellStyle(wb, dataFormat=DataFormat("@")) 
FormatList = list('2'=TextFormat, '5'=TextFormat,'6' = TextFormat) 

xlsx::addDataFrame(df, sheet1, col.names=TRUE, colStyle=FormatList, 
    row.names=FALSE) 
xlsx::saveWorkbook(wb, 'test.xlsx') 

注:「@」はテキスト形式のコードです。

+0

ありがとうございます、これは魅力的です!このコードを見るための情報源はありますか?私は科学的な数字などのいくつかの列に印を付けるのが大好きです...しかし、私はこれらのコードの良いソースを見つけることができません... – drmariod

+0

ちょうど科学の表記を見つけて、それを私の質問に加えました。フォーマットスタイルを取得する方法についての情報源があるなら、私はまだ興味があります。 – drmariod

関連する問題