2015-06-19 80 views
0

我对R非常陌生,并且努力从.csv文件导入数据。从.csv文件读取给我一个矢量,而不是数据框?

具体来说,我试图从.csv文件中拉出31个响应,一些“1”,一些“2”,一些“3”和一些“4”。这个数据是头Q21

于是,我就做下:

c <- mydata["Q21"] #because (mydata$21) gave an "$ operator is invalid for atomic vectors response 

但是,刚刚返回 [1] NA

我找了31个整数响应。

不知道我在做什么错。当我用这种语言站起来的时候,我会真正感谢任何和所有的帮助。

编辑:

STR(MYDATA)产生 CHR “/Users/charles/Documents/Work/Survey/CSV/Acme_Company.csv”

我确实使用了read.csv(MYDATA),它产生了一切,似乎有像Q20这样的列标题。

当我在C <类型 - MYDATA $ Q21(这是一个错字我之前写的),我得到: 错误MYDATA $ Q21:$操作是无效的原子向量

MYDATA [1 :3,] 错误MYDATA [1:3,]:尺寸

is.data.frame(MYDATA) [1] FALSE

colnames(MYDATA) NULL

的数量不正确

MYDATA [, “Q21”] 错误MYDATA [ “Q21”]:尺寸

所以我不知道 - MYDATA不是数据帧,权数不正确?那么,如果我想使用其中的信息,我该怎么做?

+2

**发布一个可重现的例子。使用'dput()'。**向我们展示一下你的数据框的几行,比如'mydata [1:3,]'。 – smci

+1

你是如何导入你的数据的?听起来不像'mydata'是一个data.frame。你使用'read.csv()'还是别的? – MrFlick

+0

向我们展示'str(mydata)'。还要检查'is.data.frame(mydata)',听起来像是错误的,所以你的'''read.csv()'(或者你使用的任何命令)没有返回你一个数据帧 - 请发布读命令。 – smci

回答

0

mydata这样的声音不是数据帧,而是一个矢量;所以read.csv()没有返回给你一个数据帧。 (发布用于读取数据的命令,然后发布str(mydata)的输出)。

(MYDATA $ 21)给了一个“$操作是无效的原子向量响应


这是你的错误,你的意思是mydata$Q21mydata$21试图访问一个名为21没有Q21列。请仔细阅读您的错误消息;-)

mydata [“Q21”]刚刚返回[1]不适用

首先,检查mydata实际上是否有一个名为Q21的列或没有。告诉我们colnames(mydata)。第二,要得到一列的一部分,你需要mydata[, "Q21"],你绝对需要前导逗号,这表示逗号后面的东西是列名或索引。

+0

我不认为错误消息表明列名是一个问题,通常会返回NULL(尽管不是21美元,如果没有使用$“21”,这将是一个不同的错误)。它似乎只是建议'mydata'是一个向量,矩阵或其他东西。 – ping

+0

@平井我认为暗示mydata可能不是数据框,并且'read.csv()'没有返回OP数据帧,而是一个向量。但我想我会给他们带来怀疑的好处。 – smci