1

この背景には、私は主に Python プログラマーであり、R にある程度精通しているということです。私は、Perl プログラマーによって書かれた R スクリプトを調べて、多くのループを使用forしているかどうかを確認する任務を負っています。whileより R に似せて、より高速に実行することができます。

例として、次のリストがあります。

> lnums <- list(1:5, 6:7, 8:12)

長さが 5 未満の要素 ( lnums[[2]]) については、長さを 5 に変更したいと考えています。元のコードでは、forループを使用しNAて、短いベクトルの末尾に値を追加しています。それよりも方法。私はそれに到達する方法をいじっていて、思いついた

> sapply(lnums, FUN=function(x) length(x) < 5)

length(lnums[]) <- 5これは正しい要素を取得しますが、これをステートメントの添え字に組み込む方法がわかりません。これはおそらく本当に初心者の質問だと思いますが、私が得ることができる助けをいただければ幸いです。

さらに、短いリスト要素の長さを増やしたい理由は、リストをデータ フレームに入れることができるようにするためです。長さをいじらずにそれを行う方法があれば素晴らしいと思いますが、私の好奇心を満足させるために最初の質問への回答を気にしません。

皆さんありがとう。私はここでいくつかのトピックを掘り下げてきましたが、あなたはすでに私をかなり助けてくれました!

4

1 に答える 1

3

1 つの方法を次に示します。

lapply(lnums, 'length<-', 5)
于 2013-05-23T20:31:38.367 に答える