2

この種の行がたくさんあるファイルがあります

2010-01-12 19:40   1021.00000   0.00001     1.00
2010-01-12 19:50   1031.00000   0.00000     -1.00

動物園として読むために私は使用します

tmp <- read.table("myfile")
GOEMD <- zoo(tmp[,3], as.chron(paste(tmp[,1],tmp[,2]), format="%Y-%m-%d %H:%M"))

read.zoo()それは正しく動作しますが、代わりに使用したいと思います。

私はもう試した

f <- function(x)  as.chron(paste(tmp[,1],tmp[,2]))
tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN  = f)

そして指定することさえ

colClasses= c("character","character","numeric","numeric","numeric")

しかし、それは機能しません。136行目(上に貼り付けたもの)には14個の要素がありません。

私も試しました:

tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN  = as.chron)
4

2 に答える 2

3
  1. のタイプミスfはすでに指摘されています。
  2. read.zooまた、利用したい機能がいくつかあります。indexまず、引数の値がリストの場合、そのリストの各コンポーネントで参照される列は、個別の引数としてに渡されることに注意してくださいFUN。またFUN2、の出力に適用される引数が使用可能であるため、次のFUNようにコンパクトに記述できることにも注意してください。

したがって、これを試してください:

library(zoo)
library(chron)

Lines <- "2010-01-12 19:40   1021.00000   0.00001     1.00
2010-01-12 19:50   1031.00000   0.00000     -1.00"

z <- read.zoo(textConnection(Lines), index = list(1, 2), 
        FUN = paste, FUN2 = as.chron)

上記は自己完結型であるように書かれているので、クリップボードに逐語的にコピーしてからRセッションに貼り付けることができます。ファイルで使用するには、に置き換えtextConnection(Lines)ます"myfile"

于 2010-11-19T18:49:50.143 に答える
2

関数fはを検索する必要がありtmpます。あなたはおそらく意図していました:

f <- function(x)  as.chron(paste(x[,1],x[,2]))
tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN = f)

また、投稿したサンプルデータは、スペース区切りではなくタブ区切りのように見えるため、代わりに次のようにする必要があります。

tmp <- read.zoo("myfile", index = 1, sep="\t", FUN = as.chron)
于 2010-11-18T13:08:06.853 に答える