1

ファイルをコンピュータにダウンロードして実行してください:
http://freeuploadfiles.com/bb3cwypih2d2

data=read.table("path/to/file", sep="|",quote='',
       head=T,blank.lines.skip=T,as.is=T)
ddata=array(data,dim=c(nrow(data),ncol(data)))
ddata[1,1]

最初の列の最初の要素を抽出したい。答えは ですAAC

それ、どうやったら出来るの?

4

1 に答える 1

15

コードをきれいにして、長期的に生活を楽にするためのいくつかの提案:

  1. data.frameではなく でデータを操作しarrayます。
  2. TRUEとして参照しないでくださいTTRUEは、再定義できない予約語ですがT、以下を含む任意の値を取ることができます。FALSE
  3. <-割り当てに記号を使用する
  4. 省略形の引数名を使用しないでください。議論はheader、ではありませんhead。これはあなたを噛むかもしれません

配列には、単一クラスのオブジェクトのみを含めることができます。したがって、データをarrayに変換すると、暗黙的にnumeric列が に変換されますがcharacter、これは確かに悪いことです。

次に、次のようにデータ フレームにインデックスを付けます。

dat <- read.table("nasdaqlisted.txt", sep="|", quote='',
                   header=TRUE, blank.lines.skip=TRUE, as.is=TRUE)

dat$Symbol[1]
[1] "AAC"

次の別のインデックス付け方法でも、同じ要素が返されます。

dat[1, "Symbol"]
dat[1, 1]
dat[, 1][1]
dat[["Symbol"]][1]

本当に愚かなことをしてデータを配列に変換したい場合は、次を使用しmatrixます。

mdat <- as.matrix(dat)
mdat[1, 1]
Symbol 
 "AAC" 

免責事項:あなたが尋ねたので、私はこれを投稿するだけです. 配列と行列は強力で高速ですが、このデータには適していません。

于 2012-08-09T06:52:12.280 に答える