[解決済み] lapplyとdo.callの違いは何ですか?
2022-04-22 04:36:50
質問
最近Rを勉強しているのですが、2つの関数で混乱しています。
lapply
と
do.call
. と似ているだけのようです。
map
というLispの関数があります。しかし、なぜこんなにも違う名前の関数が2つもあるのでしょうか?なぜRでは、単に
map
?
解決方法は?
という関数があります。
Map
他の言語ではmapに似ているかもしれません。
-
lapply
はXと同じ長さのリストで、その各要素はXの対応する要素にFUNを適用した結果であることを返します。 -
do.call
は、名前または関数とそれに渡される引数のリストから関数呼び出しを構築し、実行します。 -
Map
は,与えられたベクトルの対応する要素に関数を適用します.Map
の単純なラッパーです。mapply
Common Lispのmapcarに似ていて、結果を単純化しようとはしません(ただし、引数は再利用されます)。将来のバージョンでは、結果の型をある程度制御できるようになるかもしれない。
-
Map
のラッパーです。mapply
-
lapply
の特殊なケースです。mapply
-
したがって
Map
とlapply
は多くの場合において類似していることでしょう。
例えば、次のようなものです。
lapply
:
lapply(iris, class)
$Sepal.Length
[1] "numeric"
$Sepal.Width
[1] "numeric"
$Petal.Length
[1] "numeric"
$Petal.Width
[1] "numeric"
$Species
[1] "factor"
また、同じように
Map
:
Map(class, iris)
$Sepal.Length
[1] "numeric"
$Sepal.Width
[1] "numeric"
$Petal.Length
[1] "numeric"
$Petal.Width
[1] "numeric"
$Species
[1] "factor"
do.call
は関数を入力とし、その他の引数を関数にスプラッタします。例えば、リストをより単純な構造に組み立てるために広く使われている(しばしば
rbind
または
cbind
).
例えば
x <- lapply(iris, class)
do.call(c, x)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
"numeric" "numeric" "numeric" "numeric" "factor"
関連
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] クロージャ」と「ラムダ」の違いは何ですか?
-
[解決済み] 関数型プログラミングで時間関数が存在するのはなぜですか?
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
-
[解決済み】Rでリストを正しく使用する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
R - よくあるエラーとその原因 - 注意事項
-
Rでエラー:単項演算子への引数が無効
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み] Rで文字列から最後のn文字を抽出する
-
[解決済み】R関数でオプション引数を指定する "正しい "方法
-
[解決済み] [Solved] data.frameのカラムをベクトルに変換する?