我想将一个文件读入一个数组列表,每行代表一个列表元素。每一行都有不同数量的元素和不同行中的第一个值是列表键,其余数据将是数组的成员。
e.g。文件示例
1 100,50,2,5,78
2 5,4,2,1
3 1
4 7,2,9,0,23,5,6,7,8,2,3,4
5 1,2,3,4,5,6,7,8,9,0
6 1,8
答案 0 :(得分:0)
我认为这应该运作良好
dd<-scan("example.txt", list("character", "character"))
Map(function(a,b)b, dd[[1]], strsplit(dd[[2]],","))
这里使用use scan
将第一列作为一个向量读取,将第二列作为另一个向量读取。然后我们用逗号表示第二个,并使用Map的一个副作用从第一列中提取名称,并将它们用作第二列中矢量的标签。如果您希望矢量值为数字,则可以执行
Map(function(a,b) as.numeric(b), dd[[1]], strsplit(dd[[2]],","))
# $`1`
# [1] 100 50 2 5 78
#
# $`2`
# [1] 5 4 2 1
#
# $`3`
# [1] 1
#
# $`4`
# [1] 7 2 9 0 23 5 6 7 8 2 3 4
#
# $`5`
# [1] 1 2 3 4 5 6 7 8 9 0
#
# $`6`
# [1] 1 8