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. 使用 a 中的数据data.frame,而不是array.
  2. 永远不要TRUE称为T. TRUE是一个永远不能重新定义的保留字,而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 回答