2017-02-06 4 views
0

これは再現可能な例を作るのが難しいので、私は前もってごめんなさい。Rのリストに格納されているs4オブジェクトで@演算子を使用できませんか?

オブジェクトを含むmp3Listというリストがあります。私はこれを次のように生成します:readMP3で生成された100個のwaveオブジェクトをリストに入れます。

mp3List <- vector("list", 100) 
for(i in UrlReadNames) 
{ 
    mp3List[which(UrlReadNames == i)]<-readMP3(i) 
} 

波オブジェクトの構造は、次のようになります。

> str(ddd) 
Formal class 'Wave' [package "tuneR"] with 6 slots 
[email protected] left  : int [1:14772096] 0 0 0 0 0 0 0 0 0 0 ... 
[email protected] right : int [1:14772096] 0 0 0 0 0 0 0 0 0 0 ... 
[email protected] stereo : logi TRUE 
[email protected] samp.rate: num 44100 
[email protected] bit  : num 16 
[email protected] pcm  : logi TRUE 

リストの波動オブジェクトの構造は次のようになります。今、私が使用しようと

> str(mp3List[1]) 
List of 1 

$ :Formal class 'Wave' [package "tuneR"] with 6 slots 
.. [email protected] left  : int [1:14772096] 0 0 0 0 0 0 0 0 0 0 ... 
.. [email protected] right : int [1:14772096] 0 0 0 0 0 0 0 0 0 0 ... 
.. [email protected] stereo : logi TRUE 
.. [email protected] samp.rate: num 44100 
.. [email protected] bit  : num 16 
.. [email protected] pcm  : logi TRUE 

mp3List[1]@leftオブジェクトのこの部分にアクセスするには、このエラーが発生します。Error: Attempting to get a "left" slot from an object of a basic class ("list") without slots

リスト内のこれらのオブジェクトに@を使用したいので、リスト内のすべてのwaveオブジェクトにアクセスするためのループを作成して、個々に個別に取り出す必要はありません。

答えて

0

[はサブリストを返します。 個々の成分には、[[を使用してください。

mp3List[[1]]@left 
+0

ええ、答えがありがたいです、リスト構造を忘れてしまったので、期限が切れても受け入れます。 –

関連する問題