-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)]'似乎回答了给定的问题。 –