Rで、listのnames属性を取得して、あたらしいベクトルを作りたいです!
R
1library(RMeCab) 2 3(word <- RMeCabC("いつも答えてくれてありがとう")) 4
これをすると、
R
1[[1]] 2 副詞 3"いつも" 4 5[[2]] 6 動詞 7"答え" 8 9[[3]] 10助詞 11"て" 12 13[[4]] 14 動詞 15"くれ" 16 17[[5]] 18助詞 19"て" 20 21[[6]] 22 感動詞 23"ありがとう"
こういう結果が返ってきます(意図通り)。
これを使って、
R
1mylist <- c("いつも_副詞", "答え_動詞", "て_助詞", "くれ_動詞", "て_助詞", "ありがとう_感動詞")
となるようなベクトルを作りたいです(最終目標)。
names属性をlistで得られれば、あとはmylist <- paste(word, word.names, sep = "_")
みたいなやつをやればいいとおもうので、names属性を取得したいです。やりかたがわかりません…。
「names(word)」かとおもいましたが、NULLが返ってきてしまうのどうしてでしょうか…?
追加 2018/06/18 17:30
str(word)すると、以下のようになります。これはどのように読んだらよいものでしょうか…?
R
1List of 6 2 $ : Named chr "いつも" 3 ..- attr(*, "names")= chr "副詞" 4 $ : Named chr "答え" 5 ..- attr(*, "names")= chr "動詞" 6 $ : Named chr "て" 7 ..- attr(*, "names")= chr "助詞" 8 $ : Named chr "くれ" 9 ..- attr(*, "names")= chr "動詞" 10 $ : Named chr "て" 11 ..- attr(*, "names")= chr "助詞" 12 $ : Named chr "ありがとう" 13 ..- attr(*, "names")= chr "感動詞"
names(word[[1]])すると、以下のようになります。いい線いってると思うんですが…。
R
1[1] "副詞"
でもnames(word)するとNULLになってしまいます…。
追加 2018/06/19 20:50
R
1result <- list() 2for (i in 1:length(word)) { 3 (val <- names(word[[i]])) 4 result <- append(result, val) 5}
このようにして、品詞名のリストを手にすることができました!!
しかし、いまだに本質を理解することができていない気がします…。
R
1lapply(word, "[[", names)
こんな感じでapply使って、達成できそうだと思ったんですが…。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/17 04:59
2018/06/17 05:43
2018/06/18 08:31
2018/06/19 11:58
2018/06/19 18:22
2018/06/20 01:53