假设我有一个列表:
alist<- list(4,6,8,9)
我想测试每个列表元素是否大于 7,如果为真则返回 1,如果为假则返回 0。
但是我必须使用 lapply。
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
当然,这些都不起作用,我不断收到以下错误。
Error: unexpected ',' in "lapply(alist, if,"
假设我有一个列表:
alist<- list(4,6,8,9)
我想测试每个列表元素是否大于 7,如果为真则返回 1,如果为假则返回 0。
但是我必须使用 lapply。
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
当然,这些都不起作用,我不断收到以下错误。
Error: unexpected ',' in "lapply(alist, if,"
回答这个问题让我很痛苦,因为这样做非常不合理。您可以尝试更明确并使用括号,如下所示:
lapply(alist, function(x) if (x > 7) {1} else {0})
或者向量化的ifelse
lapply(alist, function(x) ifelse(x > 7, 1, 0))
或者最重要的是:
as.numeric(alist > 7)
另外两个:
lapply(alist > 7, as.integer)
或者
lapply(alist > 7, ifelse, 1, 0)