根据向量'p'中的值,我想将另一个向量中的值设置为0或1.我尝试了以下操作
newvector=rep(0,length(p))
newvector=ifelse(p>=0.5,newvector=1,newvector=0)
Run Code Online (Sandbox Code Playgroud)
但这会引发错误,即ifelse有未使用的参数
矢量p
c(0.691401225261269, 0.433129612442971, 0.715983054119369, 0.886747655276408,
0.768369966075636, 0.619451618025444, 0.747447691612602, 0.787480458130569,
0.29095065207117, 0.703299386664627, 0.72613890310703, 0.244542050906673,
0.424358969255879, 0.244542050906673, 0.405127250273614, 0.365573918723265,
0.277863840689181, 0.656827737910484, 0.762318455515624, 0.839076103987831,
0.337670440659204, 0.781335609699773, 0.815504546491645, 0.671220524010401
)
Run Code Online (Sandbox Code Playgroud)
Sim*_*lon 11
您不需要newvector事先制作并将其用作参数来ifelse导致错误.
试试这个...
newvector <- ifelse( p>=0.5 , 1 , 0 )
Run Code Online (Sandbox Code Playgroud)
但更好的只是做矢量化......
newvector <- as.integer( p >= 0.5 )
Run Code Online (Sandbox Code Playgroud)
只需使用:
newvector <- ifelse(p>=0.5,1,0)
Run Code Online (Sandbox Code Playgroud)
第二个和第三个参数ifelse不是表达式,而是要返回的值.