【问题标题】:Reading from .csv file giving me a vector, not a dataframe?从 .csv 文件中读取给我一个向量,而不是一个数据框?
【发布时间】:2015-06-19 19:15:21
【问题描述】:

我对 R 非常陌生,正在努力从 .csv 文件导入数据。

具体来说,我正在尝试从 .csv 文件中提取 31 个响应,一些“1”、一些“2”、一些“3”和一些“4”。该数据在标题 Q21 下

所以我试着做:

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

但这刚刚回来 [1] 不适用

我正在寻找 31 个整数响应。

不知道我做错了什么。当我用这种语言站起来时,我真的很感激任何和所有的帮助。

编辑:

str(mydata) 产生 chr "/Users/charles/Documents/Work/Survey/CSV/Acme_Company.csv"

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

当我输入 c

我的数据[1:3,] mydata[1:3, ] 中的错误:维数不正确

is.data.frame(mydata) [1] 错误

列名(我的数据) 空

我的数据[,“Q21”] mydata[, "Q21"] 中的错误:维数不正确

所以我不知道——mydata 不是数据框,对吧?那么如果我想使用其中的信息应该怎么做呢?

【问题讨论】:

  • 发布一个可重现的例子。使用dput()。只需向我们展示您的数据框的几行,例如mydata[1:3,]。
  • 您是如何导入数据的?听起来mydata 不像是一个data.frame。你是用read.csv()还是什么的?
  • 告诉我们str(mydata)。还要检查is.data.frame(mydata),听起来好像是假的,所以您的read.csv()(或您使用的任何命令)没有返回数据框 - 请发布读取命令。

标签: r csv


【解决方案1】:

听起来mydata 不是数据帧而是向量;所以read.csv() 没有返回数据框。 (发布你用来读取数据的命令,然后发布str(mydata)的输出)。

(mydata$21) 给出“$ 运算符对原子向量响应无效


那是你的错误,你的意思是mydata$Q21。 mydata$21 正在尝试访问名为 21 而不是 Q21 的列。更仔细地阅读您的错误消息;-)

mydata["Q21"] 刚刚返回 [1] NA

首先,检查mydata 是否确实有一个名为Q21 的列。告诉我们colnames(mydata)。

其次,要获得一列的切片,你需要mydata[, "Q21"],你绝对需要前导逗号,这表示逗号后面的东西是列名或索引。

【讨论】:

  • 我不认为错误消息表明列名是一个问题,因为通常会返回 NULL (尽管不是 $21 如果 $"21" 是一个不同的错误未使用)。似乎只是暗示mydata是一个向量,矩阵什么的。
  • @ping 好吧,我想建议 mydata 可能不是数据帧,read.csv() 没有返回 OP 数据帧,而是向量。但我想我会给他们怀疑的好处。
猜你喜欢
  • 2021-12-07
  • 2021-09-20
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2014-02-14
相关资源
最近更新 更多