2017-06-28 6 views
0

のための2の複数のリストのリストは、その同義語 enter image description here私は最初の単語が同じレコードに「メイン」という単語と単語の残りの部分であるcsvファイルから同義語を読みたい同義語

です

今私は基本的にこれは私に、本質的にリスト0である

synonyms 
[[1]] 
[[1]]$word 
[1] "ss" 

[[1]]$syns 
[1] "yy" "yyss" 


[[2]] 
[[2]]$word 
[1] "ser" 

[[2]]$syns 
[1] "sert" "sertyy" "serty" 

としてリストを与える

**synonyms <- list(
    list(word="ss", syns=c("yy","yyss")), 
    list(word="ser", syns=c("sert","sertyy","serty")) 
)** 

、私はRでなければならないようにリストを作成したいですf "単語"と "syn"のリスト。 csvファイルから単語とシノニムを読みながら、同様のリストを作成するにはどうすればいいですか?

どのポインタも役立ちます!ありがとう

+0

私はreadLines' 'になります。これは、各要素がcsvの行であるベクトルを返します。 'strsplit'を使って構文解析を行い、各ベクトルの最初の要素があなたの単語であり、残りが同義語であるベクトルのリストを取得することができます。 – lmo

+0

私はこれを行うことができますが、次にどのようにベクトルの最初の要素をリストの最初の要素($ wordという名前)に変換し、後続の単語をリストの2番目の要素としてcharベクトル名前$ syns) – shashankp

+0

これは再現可能な例です。将来、使用するための例を作成してください。データの画像では不十分です。 – lmo

答えて

1

このプロセスはあなたが望むものを返すはずです。

# read in data using readLines 
myStuff <- readLines(textConnection(temp)) 

これは、ファイル内の1行に1要素の文字ベクトルを返します。ファイルの読み込みにはtextConnectionは必要ありません。ファイルパスを指定するだけです。さて、各ベクトル要素をstrsplitを使ってベクトルに分割し、リストを返します。

myList <- strsplit(myStuff, split=" ") 

ここで、リスト内の各ベクトルの最初の要素と残りの要素を区切ります。

result <- lapply(myList, function(x) list(word=x[1], synonyms=x[-1])) 

これは、目的の結果を返します。リスト項目を移動するにはlapplyを使用します。各リスト項目について、名前付きリストを返します。最初の要素wordは、リスト項目であるベクトルの最初の要素に対応し、このベクトルの残りの要素は、同義語と呼ばれる2番目のリスト要素に配置されます。

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" 
+0

ありがとうございます! – shashankp

関連する問題