-1
在R I具有包含user
,game
number
和其是次game
已打了一個固定user
數量data.frame data
。錯誤在if語句
讓固定的用戶給予和考慮這個
user game number
1 1 110
1 2 95
1 3 263
1 4 55
1 5 24
1 6 10
現在我正在尋找遊戲,是占主導地位。佔統治地位的遊戲是一場遊戲,而不是用戶玩過25%的時間。 我想找到該遊戲已經出場超過25%,在這種情況下的時代,所以我鍵入
u=c()
for(j in 1:6) {
# Check if the percentages is higher than 25
if(data[j,3]/sum(data[,3]) > 0.25) {
u[j]=data[j,2]
}
else{u[j]=0}
但是,當我在RI鍵入此得到這個奇怪的消息
Error in if(....): missing value where TRUE/FALSE needed
添加一個'}'在代碼的末尾,它會正常運行 – etienne
最好使用'ifelse(data [,3]> 0.25 * colSums(data)[[3]],data [,2],0)'而不是for循環。這也可能是一個可以通過'data.table' – etienne
與@etienne一致解決的問題,這可以通過'data.table'更容易完成,避免了for循環。例如:'dt = data.table(data)'然後'u = dt [dt $ number> sum(dt $ number)]'似乎回答了給定的問題。 –