解析多个 space 分隔的数据集并将其存储在正确的数据结构中

Parsing a multi space-separated data set and storing it in the right data structure

我有一个包含姓名、年龄和公司的大型数据集。

file.txt :

name firstname1 lastname1
age 30
Company ABC Ltd

name firstname2 lastname2
age 28
Company XYZ Ltd

我需要写一个函数,将return数据结构,给定键属性,提供给定键的对应值。

例如

 content <- parseFile("file.txt")
 content[1]["name"]    # "firstname1 lastname1"
 content[1]["age"]     # 30
 content[1]["Company"] # "ABC Ltd"

 content[2]["name"]    # "firstname2 lastname2"
 content[2]["age"]     # 28
 content[2]["Company"] # "XYZ Ltd"

到目前为止,我推断可以使用命名向量列表或
可以使用对象列表。

或者有什么更好的方法可以解决这个问题吗?

代码示例的解释会有所帮助

我们可以使用 readLines 获取数据,使用 sub 创建分隔符并创建两列 data.frame

df1 <- read.csv(text =sub(" ", ",", dat), header = FALSE,
         stringsAsFactors = FALSE)

如果我们需要拆分为 list

lst1 <-  split(setNames(as.list(df1$V2), df1$V1), cumsum(df1$V1 == 'name'))


lst1[[1]][['name']]
#[1] "firstname1 lastname1"
lst1[[1]][['age']]
#[1] "30"
lst1[[2]][['age']]
#[1] "28"

数据

dat <- readLines("file.txt")