0

c:/files というディレクトリに更新されるファイルがたくさんあります。これらのファイルは、R オブジェクトを含む R データ ファイルです。これらのファイルをロードすると、データを含むさまざまなオブジェクトが取得されます。たとえば、opening.R ファイルを読み込むと、opening.stock、opening.options、opening.bonds などのオブジェクトが取得されます。これらの .R ファイルをそれぞれ読み込んで、オブジェクトに基づいて画像を作成し、それらをファイル名とオブジェクト名 .png として追加します。以下は私のコードですが、うまくいきません。ファイルをロードしてオブジェクトを読み取ることができます。しかし、オブジェクトの内容を読み取ろうとすると、機能しません。任意のアイデア、私が間違っていること:

for (file in dir("c:\\files" ,pattern = "OPENING")){
load(file)

    for (object in ls()) {
        ## if I like to see the content of the oject
        ## I do this
        ### print(oject) 
        ### this does not work, it just prints oject, not the content of objects   
        png("file+ojbect.png")
        plot(object)
        dev.off()
    }
}

@Ben Bolker の提案に従って get(oject) を使用しましたが、現在別の問題があります。as.Date に変換し、並べ替えて、以下のようにプロットする必要がある日付列があります。

     x=as.data.frame(get(oject))
    x$Date<- as.Date(x$Date, format="%Y-%m-%d")
    x<- x[order(as.Date(x$Date, format="%Y-%m-%d")),]

次のエラーが表示されます。

Error in as.Date.default(x$Date, format = "%Y-%m-%d") :
  do not know how to convert 'x$Date' to class "Date"
Calls: as.Date -> as.Date.default
Execution halted

私はまだ問題を抱えています。最初の反復は機能しますが、2 番目のファイルになると、チョークします。

suppressMessages(library(ggplot2))
suppressMessages(library(gridExtra))
suppressMessages(library(timeDate))

    for (i in dir("c:\\tmp" ,pattern = "OPENNING")){
        setwd("C:/tmp") 
        load(i)
        print(i)
        Sys.sleep(5)
            for (object in ls()) {
                x<-data.frame(get(object))
                print(x)
                x$Date<-as.Date(timeDate(x$Date))      
                x[order(x$Date),] 
                png((openning.png",sep="")
                Plot(x)
                dev.off()
            }
    }

エラー:

Error in `$<-.data.frame`(`*tmp*`, "TimeStamp", value = numeric(0)) :
  replacement has 0 rows, data has 7
Calls: $<- -> $<-.data.frame
Execution halted

入力がない場合は、私の投稿に反対票を投じないでください。他にどのようにこの質問をすることになっていますか。

4

1 に答える 1

1

日付の問題でこれを試してください:

 x=as.data.frame(get(object))
    x$Date<- as.Date(x$Date, format="%Y-%m-%d")
    x<- x[order(x$Date)),]   
 # if the conversion was successful a Date class object can be ordered
于 2012-05-29T19:36:40.830 に答える