rsg*_*mon 7 if-statement r lapply
假设我有一个列表:
alist<- list(4,6,8,9)
Run Code Online (Sandbox Code Playgroud)
我希望测试每个列表元素是否大于7,如果为真,则返回1的列表,如果为false则返回0.
但是我必须使用lapply.
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
Run Code Online (Sandbox Code Playgroud)
当然这些都不起作用,我不断收到以下错误.
Error: unexpected ',' in "lapply(alist, if,"
Run Code Online (Sandbox Code Playgroud)
Tyl*_*ker 20
我很难回答这个问题,因为这样做是非常不可靠的.您可以尝试更明确地使用括号,如下所示:
lapply(alist, function(x) if (x > 7) {1} else {0})
Run Code Online (Sandbox Code Playgroud)
或矢量化 ifelse
lapply(alist, function(x) ifelse(x > 7, 1, 0))
Run Code Online (Sandbox Code Playgroud)
或者最重要的是:
as.numeric(alist > 7)
Run Code Online (Sandbox Code Playgroud)