如何正确索引数组?

Fnz*_* Xx 1 r

请将文件下载到您的计算机中,然后运行: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]
Run Code Online (Sandbox Code Playgroud)

我想提取第一列的第一个元素.答案应该是AAC.

我怎么做?

And*_*rie 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"
Run Code Online (Sandbox Code Playgroud)

以下替代索引方法也返回相同的元素:

dat[1, "Symbol"]
dat[1, 1]
dat[, 1][1]
dat[["Symbol"]][1]
Run Code Online (Sandbox Code Playgroud)

如果你真的想做愚蠢的事情并将数据转换为数组,那么使用matrix:

mdat <- as.matrix(dat)
mdat[1, 1]
Symbol 
 "AAC" 
Run Code Online (Sandbox Code Playgroud)

免责声明:我要求你发布此信息.数组和矩阵功能强大且速度快,但不适合此数据.