9

私がリストを持っているとしましょう:

alist<- list(4,6,8,9)

各リスト要素が7より大きいかどうかをテストし、trueの場合は1、falseの場合は0のリストを返します。

しかし、私はlapplyを使わなければなりません。

lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)

もちろん、これらはどれも機能せず、次のエラーが発生し続けます。

Error: unexpected ',' in "lapply(alist, if,"
4

2 に答える 2

24

これを行うのは非常に難しいので、これに答えるのは私を苦しめます。より明示的にして、次のように角かっこを使用することができます。

lapply(alist, function(x) if (x > 7) {1} else {0})

またはベクトル化ifelse

lapply(alist, function(x) ifelse(x > 7, 1, 0))

または何よりも:

as.numeric(alist > 7)
于 2012-10-28T19:51:27.487 に答える
3

別の2つ:

lapply(alist > 7, as.integer)

また

lapply(alist > 7, ifelse, 1, 0)
于 2016-09-27T15:26:30.147 に答える