假設測試的每個元素我有一個列表:使用lapply用,如果在列表中
alist<- list(4,6,8,9)
我想測試,如果每個列表元素大於7,並且返回是否其真實和0,如果1名單假。
但是我必須使用lapply。
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
當然,這些工作都沒有,我不斷收到以下錯誤。
Error: unexpected ',' in "lapply(alist, if,"
假設測試的每個元素我有一個列表:使用lapply用,如果在列表中
alist<- list(4,6,8,9)
我想測試,如果每個列表元素大於7,並且返回是否其真實和0,如果1名單假。
但是我必須使用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)
+1與我的回答相同,但我會記下ifelse()有點不直觀,因爲這似乎是一個新的R用戶。有趣的是,我這樣說是因爲在此之前的直接問題有些人抱怨ifelse()的關閉錯誤。 –
關於'ifelse'你是非常正確的(IMO)。我昨天晚上回答了'ifelse'問題(當用戶應該使用if(){} else {}')時, –
另外兩個:
lapply(alist > 7, as.integer)
或
lapply(alist > 7, ifelse, 1, 0)
我知道你想用'lapply',但是'as.numeric(alist> 7)'很好地工作。 –
「必須使用'lapply'」==「愚蠢的作業作業」? –
哈哈yip卡爾你釘了它。當我遇到這個問題時,我已經想出了30%的方法來確定任務。我認爲這是一個很好的問題,儘管lapply有......作爲一個論點,我想到了那裏的某個地方,我可以完成if語句。 – user1181337