首页 > 解决方案 > 如何将稀疏 CSV(每行中的项目数不等)读入 R

问题描述

我的 CSV 包含项目数量不等的行。例如。

Customer1, 01XX, 02XY, 05XYZ, 100XYZ, 03X23
Customer2, 02XX, 012X, 05XYZ
Customer3, 01XX, 02XY, 05XYZ, 012X, 005XZZ, 100XYZ

等等

如何将此类数据从 csv 读取到 R 对象中,以便它可以被 CSV 行中的第一项 Customer_x 引用,以便可以像 df 一样使用它,进行参数化,例如:

myVector <- myCSVdata[CustomerID]
myVector
[1] 02XX, 012X, 05XYZ

编辑:为什么减号?如何纠正?当行不相等时,也许有比读取 csv 更有效的方法。也许是向量列表?我不知道。

EDIT2:我正在尝试自我调节:发现一个针对类似事物措辞不同的问题和一个生成向量列表的答案,也将对此进行试验:https ://stackoverflow.com/a/18922750/3480717

标签: rdplyr

解决方案


我喜欢data.table::fread用来阅读 txt/csv 文件。

我将您的示例数据复制并粘贴到 csv 文件并导入了它。请注意,我设置header = FALSE了 ,因为您似乎没有标题。

df <- data.table::fread("Test.csv", header = FALSE)
df

结果

          V1   V2   V3    V4     V5     V6     V7
1: Customer1 01XX 02XY 05XYZ 100XYZ  03X23       
2: Customer2 02XX 012X 05XYZ                     
3: Customer3 01XX 02XY 05XYZ   012X 005XZZ 100XYZ

推荐阅读