如何在R中从.csv文件中读取列向量

5

我正在使用Python处理数据,并将其输出为.csv文件。我希望R能够以一种方式读取.csv文件,使其变成一个数据框,其中一些列实际上是向量。

这是否可能?如果可能,我需要如何格式化.csv文件?谢谢!


问题是什么?只需使用 dat <- read.csv("file.csv"),然后使用 dat$column 选择列,您将获得一个向量。CSV 是一种文本文件,其中列用逗号分隔,并且所有行的列数相同,这是其定义。 - Molx
3个回答

12

首先,向量只是一系列数据元素的序列。而数据框则是等长向量的列表。

因此,您可以将数据框的每列轻松地引用为向量。

df <- read.csv('C:\\Path\\To\\DataFile.csv')

v1 <- df[[1]]  # by column number
v2 <- df[["col1"]]  # by column name
v3 <- df$col1  # by column name

但是如果列中的向量在行之间的长度不都相同呢? - Zeke
当您导入CSV文件时,数据框的所有列都将具有相同长度,并填充缺失值以供这些行使用。只需在定义单个向量时删除缺失值:v1 <- v1[v1 != ""] - Parfait
@Zeke 如果这个回答解决了你的问题,请考虑将其标记为答案。 - Tiago Martins Peres

0

实际上,数据框是向量的集合。如果您想以向量形式获取数据,则只需使用子集函数:

df <- data.frame(matrix(rnorm(10), nrow=5))

 df$X1
## [1]  1.05376208  0.05020266  1.79204302 -1.73712344 -1.29208706
 is.vector(df$X1)
## [1] TRUE

因此,通过子集化,您可以获得数据框列X1的向量。


0

你可以在R中读取CSV文件,它默认会变成一个数据框:

data<-read.csv("nameOfCSVFile.csv", header=T)

您可以通过列切片并使用$运算符将该列作为向量获取: data$header1 返回数据框的第一列作为向量。
只需确保您的 .csv 文件按照所需顺序排列即可。
header1,header2,etc.
     1,2,etc.
     4,5, etc.
     etc..

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接