1

[]演算子を使用して R で名前付きリストをサブセット化することについて、いくつか質問がありました。

たとえば、リストを考えてみましょうformals <- list(x = DOUBLE, y = DOUBLE, z = NULL)。この例でDOUBLEは、R ではシンボルとして扱われます。

1) と等しくないすべての要素を取得するにはどうすればよいですかNULL? 試しましたが、これはメンバーのないformals[formals != NULL]タイプのオブジェクトのみを返します。list

2) 条件を満たす名前の要素を取得するにはどうすればよいですか。たとえば、名前が ではないすべての要素を取得するにはどうすればよいでしょうzか? を使用できますnames(formals)が、これは面倒[]です。

4

2 に答える 2

2

最初の質問の別のオプション:

Filter(Negate(is.null), formals)

2 番目のケースでは、 を使用する必要がありますnames。1 つの方法を次に示します。

formals[names(formals) != 'z']

formalsは実際には R の関数です。変数に名前を付けるときは、関数の名前を避けるのが最善です。

于 2013-06-11T15:52:41.413 に答える
1

これは最初の質問で機能します。

formals[!unlist(lapply(formals, is.null))]

names2番目の質問に使用することは避けられないと思います。

于 2013-06-11T15:51:36.340 に答える