[解決済み] データフレームに関数を入れる
2022-02-26 11:43:39
質問
Rで関数のベクトルをこのように代入することは可能なようです。
F <- c(function(){return(0)},function(){return(1)})
というように、(例えば)このように呼び出すことができるようにします。
F[[1]]()
.
これなら私にもできそうな気がしてきました。
DF <- data.frame(F=c(function(){return(0)}))
を実行すると、次のようなエラーが発生します。
Error in as.data.frame.default(x[[i]], optional = TRUE) : cannot クラス ""関数""をdata.frameに強制適用する。
これは、データフレームに関数を入れることはできないということでしょうか?それとも、私のやり方が悪いのでしょうか?
どのように解決するのですか?
いいえ、データフレームに直接関数を入れることはできません。
ただし、あらかじめ関数を定義して、その名前をデータフレームに入れることは可能です。
foo <- function(bar) { return( 2 + bar ) }
foo2 <- function(bar) { return( 2 * bar ) }
df <- data.frame(c('foo', 'foo2'), stringsAsFactors = FALSE)
次に
do.call()
をクリックすると、その機能を利用することができます。
do.call(df[1, 1], list(4))
# 6
do.call(df[2, 1], list(4))
# 8
EDIT
上記の回避策は、名前付き関数がある限り有効です。
問題は、Rがオブジェクトのクラスを関数として認識し、適切なメソッドを検索することです。
as.data.frame()
(
すなわち
as.data.frame.function()
) が見つからない。 そのため
as.data.frame.default()
のラッパーに違いない。
stop()
を呼び出すと、報告されたメッセージが表示されます。
要するに、そのクラスに対して実装していないだけのようです。
関連
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み】Rで「パッケージ'FILE_PATH'のインストールで終了ステータスが0でなかった」。
-
[解決済み】R ggplot2 で scale_x_discrete を使用する。
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み] lmer エラー: グループ化係数は観測数未満でなければならない
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み】サブセットされたデータフレーム内の未使用の因子レベルを削除する
最新
-
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 - if文の引数の長さが0である。
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み】 file(filename, "r", encoding = encoding) : cannot open the connectionでエラーが発生する。
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み】 .subset2(x, i, exact = exact)のエラー:Rの添え字が範囲外である。
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?
-
[解決済み】seq_alongはうまくいくが、seqが意図しない結果を生む例とは?