在R中,尝试将不规则的CSV转换为data.frame of Value,list

在R中,尝试将不规则的CSV转换为data.frame of Value,list,r,csv,tibble,R,Csv,Tibble,我有一个输入文件,如: 1A10, 77002, 77003, 77010, 77020 1A20, 77002, 77006, 77007, 77019 1A30, 77006, 77019, 77098 1A40, 77007, 77019, 77027, 77098 1A50, 77005, 77007, 77019, 77024, 77027, 77046, 77081, 77098, 77401 etc.... 我想创建一个数据框(TIBLE),其中第一列与csv的第一列相同,第二列

我有一个输入文件,如:

1A10, 77002, 77003, 77010, 77020
1A20, 77002, 77006, 77007, 77019
1A30, 77006, 77019, 77098
1A40, 77007, 77019, 77027, 77098
1A50, 77005, 77007, 77019, 77024, 77027, 77046, 77081, 77098, 77401
etc....
我想创建一个数据框(TIBLE),其中第一列与csv的第一列相同,第二列是与其余列对应的列表

我失败得很惨。这是我最后一次失败

library(stringr)
library(tidyverse)

options(stringsAsFactors = FALSE)

infile <- "~/Rprojects/CrimeStats/BeatZipcodes.csv"

# create empty data frame
BeatToZip <- data_frame(
    beat=character(),
    zips=list()
)

con=file(infile,open="r")
line=readLines(con) 
long=length(line)
for (i in 1:long){
    print(line[i])
    line[i] <- trimws(line[i])
    beat <- str_split(line[i],", *")[[1]][1]
    zips <- as.list(str_split(line[i],", *")[[1]][-1])
    temp <- data_frame(beat, zips)
    BeatToZip <- rbind(BeatToZip, temp)
}
close(con)
库(stringr)
图书馆(tidyverse)
选项(stringsAsFactors=FALSE)

使用
read.csv
fill=TRUE

library(tidyverse)
df1 <- read.csv(infile, fill = TRUE, header = FALSE)

使用
read.csv
fill=TRUE读取文件后的一个选项

library(tidyverse)
df1 <- read.csv(infile, fill = TRUE, header = FALSE)
我想出来了。如果我用“list”而不是“as.list”,它就可以按我所希望的那样工作。如果我使用“list”而不是“as.list”,它就可以正常工作。