如果文件在每行中包含不同数量的字符串,我如何将数据从csv文件加载到R中?我需要在一个变量(例如列表列表?)中将它联合起来。文件中的数据如下所示(我不知道一行中的最大元素数):
Peter; Paul; Mary
Jeff;
Peter; Jeff
Julia; Vanessa; Paul
答案 0 :(得分:4)
使用fill=TRUE
:
read.table(text='
Peter; Paul; Mary
Jeff;
Peter; Jeff
Julia; Vanessa; Paul',sep=';',fill=TRUE)
V1 V2 V3
1 Peter Paul Mary
2 Jeff
3 Peter Jeff
4 Julia Vanessa Paul
答案 1 :(得分:1)
r <- readLines("tmp3.csv")
getLine <- function(x) {
r <- scan(text=x,sep=";",what="character",quiet=TRUE)
r <- r[nchar(r)>0] ## drop empties
r <- gsub("(^ +| +$)","",r) ## strip whitespace
r
}
lapply(r,getLine)
## [[1]]
## [1] "Peter" "Paul" "Mary"
##
## [[2]]
## [1] "Jeff"
##
## [[3]]
## [1] "Peter" "Jeff"
##
## [[4]]
## [1] "Julia" "Vanessa" "Paul"
从技术上讲,这是一个向量列表而不是列表列表,但它可能就是你想要的......