如何将稀疏的CSV(每行中的项目数不等)读入R中

时间:2018-05-12 16:15:45

标签: r dplyr

我的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

1 个答案:

答案 0 :(得分:4)

我喜欢使用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