2017-01-10 8 views
0

ここにdatと表現したデータのリストがあります。私は、各リストの要素の数と固有の要素と各要素の頻度を与える方法でデータを要約しようとしています(ただし、サンプルファイルには4要素ありますが、実際のファイル)。私は(私は多くの点で間違っている知っている)、ソートの何かテーブルの一覧を要約するR

Summary_dat = cbind.data.frame(Num_element,Num_unique, Num_table) 

を取得するために探しています

dat = list(c("a","b","c","d"), 
      c("a","a"), 
      c("b"), 
      c("c","a","c")) 

Num_element = sapply(dat, length) 
Num_table = sapply(dat, table) 
Num_unique = sapply(Num_table, length) 

基本的に私が思い描くものを出力するように見えることができるように、ネストされたデータフレーム、次のようになります。

Num_element Num_unique Num_table 
1   4   4 a b c d 
2   2   1 1 1 1 1(in the same line as above) 
3   1   1 
4   3   2 

私が求めていることが可能かどうかはわかりません。そうでない場合は、データを表現するための良い方法は何でしょうか。また、エクセルにエクスポートすることもできますか?

+0

'Num_element = sapply(dat、length)'の場合、より効率的な 'Num_element = lengths(dat)'を使うことができます。私の推薦は、あなたが話しているこの複雑な構造ではなく、要素の位置が元のリストのdata.frameまたは要素のrwoに対応するテーブルの2番目のリストを保持することです。 – lmo

答えて

1

あなたがしたいことがありますか?

data.frame(Num_element = Num_element, 
      Num_unique = Num_unique, 
      Num_table = sapply(Num_table, function(x) paste(names(x), x, collapse=' '))) 

# Num_element Num_unique  Num_table 
#1   4   4 a 1 b 1 c 1 d 1 
#2   2   1    a 2 
#3   1   1    b 1 
#4   3   2   a 1 c 2 
関連する問題