0

私はRの比較的新参者です。これを理解しようとして、過去2営業日を検索しましたが、失敗しました。関数によって生成される因子のリストがあります。さまざまな長さのリストに9つのアイテムがあります。

>summary(list_dataframes)
      Length Class  Mode   
 [1,] 1757   factor numeric
 [2,] 1776   factor numeric
 [3,] 1737   factor numeric
 [4,] 1766   factor numeric
 [5,] 1783   factor numeric
 [6,] 1751   factor numeric
 [7,] 1744   factor numeric
 [8,] 1749   factor numeric
 [9,] 1757   factor numeric

出てきたデータのサンプルの一部:

list_dataframes

[[1]]

[1] 1776234_at   1779003_at   1776344_at   1777664_at   1772541_at   1774525_at  

 [[2]]

 [1] 1771703_at   1776299_at   1772744_at   1780116_at   1775451_at   1778821_at  

[7] 1774342_at 

 [[3]]

[1] 1780116_at   1776262_at   1775451_at   1780200_at   1775704_at 

モードが「数値」であると表示される理由がわかりません。個々のエントリは、「S35_at」のように数字と文字を組み合わせたものです。

重複する値を作成せずに、これを9列1783行のテーブルにしたいと思います。(したがって、do.callを使用しようとしましたが、機能しませんでした。結果として、重複がいっぱいになりました。)短いものは、空のスペースにNAが含まれるか、空白になる可能性があります。

最終的には、スプレッドシートに入れることができるものになってしまう必要があります。

これを行う方法が必要です。ありがとうございました!

4列のデータがある場合、最初はデータフレームとして出力されていたので、追加する必要があると思いますが、必要なデータは1列だけで、このリストを作成する関数をサブセット化して、実際に必要な1列だけを作成したようです。もはやデータフレームではありません。

dput(head(list_dataframes))
list(structure(c(3605L, 5065L, 3663L, 4349L, 1655L, 2700L, 5692L, plus many more
.Label = c("1769308_at", 
"1769311_at", "1769312_at", "1769313_at", "1769314_at", "1769317_at", plus many more
this pattern is repeated nine more times

私がやろうとしているのは、次のようなテーブルを作成することです。

a= xyz,tuv,efg,hij,def
b= xyz,tuv,efg
c= tuv,efg,hij,def

私が作りたいのはテーブルです

a    b    c
xyz  xyz  tuv
tuv  tuv  efg
efg  efg  hij
hij  NA   NA
NA   NA   NA

NA could be blank as well.

リストのマニュアルセクションをよく読んだ後、私はリストの埋もれたリストを生成したと判断しました。それには、私が2層下に埋めたいデータを含む9つのアイテムがありました。つまり、それを確認するには、[[1]]を使用する必要がありました。また、Rに何かがあり、データフレームを維持する代わりに、単一列のデータフレームが要因になるため、さらに複雑になりました。それを修正するために(一種の)方程式に1つのステップを追加して、その係数をデータフレームに変更しました。

その後、lapplyを使用して結果を生成すると、少なくとも要因の問題は解決されました。次に、次の手順を使用してデータフレームを引き出すことができます。

first <- list_dataframes[[1]]
second <- list_dataframes[[2]]
third <- list_dataframes[[3]]
fourth <- list_dataframes[[4]]
fifth <- list_dataframes[[5]]
sixth <- list_dataframes[[6]]
seventh <- list_dataframes[[7]]
eighth <- list_dataframes[[8]]
nineth <- list_dataframes[[9]]

all_results <- cbindX(first,second,third,fourth,fifth,sixth,seventh, eighth,nineth)

次に、write.csvを使用してcsvファイルを記述し、目的の正しい結果を得ることができました。だから私は私の答えがあると思います。私はそれが今機能することを意味します。

しかし、今では正しい結果が得られているにもかかわらず、この作業を最適に行うには何かが欠けていると思います。

4

1 に答える 1

1

因子クラス変数は、整数値の表示に使用されるラベルを指定する文字ベクトルである属性が付加された整数モードのベクトルです。mergeこれらをバインドする最も安全な方法は、因子列を文字クラスに変換してから、を使用することだと思いますall=TRUE。3つのデータフレームまたは要素を使用した簡単な例を投稿してみませんか...データの複雑さのレベルに関係なく、長さ10、9、および8のsummary-outputから構造を確実に識別できませんか?

共通のレベルセットを使用してすべての要素を作成する場合は、次を使用します。

 shared_levels <- unique( c( unlist( lapply(list_dataframes) ) ) )
 length(shared_levels)
 new_list <- lapply(list_dataframes, factor, levels=shared_levels)

コメントで述べたように、私はあなたがどのようなテーブルが作られていると想像しているのかまだわかりません。具体的な例が必要です。

于 2013-03-15T19:29:45.367 に答える