我想从csv文件中读取同义词,其中第一个单词是“主”单词,同一记录中的其余单词是其同义词
现在我基本上想要创建一个像R一样的列表,
**synonyms <- list(
list(word="ss", syns=c("yy","yyss")),
list(word="ser", syns=c("sert","sertyy","serty"))
)**
这给我一个列表
synonyms
[[1]]
[[1]]$word
[1] "ss"
[[1]]$syns
[1] "yy" "yyss"
[[2]]
[[2]]$word
[1] "ser"
[[2]]$syns
[1] "sert" "sertyy" "serty"
基本上是“单词”和“syns”列表的列表。 如何在从csv文件中读取单词和同义词时创建类似列表
任何指针都会有所帮助!!谢谢
答案 0 :(得分:1)
此过程应返回您想要的内容。
# read in data using readLines
myStuff <- readLines(textConnection(temp))
这将返回一个字符向量,文件中每行一个元素。请注意,读取文件不需要textConnection
。只需提供文件路径。现在,使用strsplit
将每个向量元素拆分为向量并返回一个列表。
myList <- strsplit(myStuff, split=" ")
现在,将第一个元素与列表中每个向量的剩余元素分开。
result <- lapply(myList, function(x) list(word=x[1], synonyms=x[-1]))
这将返回所需的结果。我们使用lapply
来浏览列表项。对于每个列表项,我们返回一个命名列表,其中名为word的第一个元素对应于作为列表项的向量的第一个元素,此向量的其余元素放在名为synonyms的第二个列表元素中。
result
[[1]]
[[1]]$word
[1] "ss"
[[1]]$synonyms
[1] "yy" "yyss"
[[2]]
[[2]]$word
[1] "ser"
[[2]]$synonyms
[1] "sert" "sertyy" "serty"
[[3]]
[[3]]$word
[1] "at"
[[3]]$synonyms
[1] "ate" "ater" "ates"
[[4]]
[[4]]$word
[1] "late"
[[4]]$synonyms
[1] "lated" "lates" "latee"
数据强>
temp <-
"ss yy yyss
ser sert sertyy serty
at ate ater ates
late lated lates latee"