我在r中有一个数组,它有成千上万行和三个不同的列。对于数组中的每一行,我想根据第一列和第三列更改第一列。特别是,如果第三列中的数字大于第一列中的数字,则它应该返回1,如果第三列中的数字小于第一列中的数字,则它应返回0,如果它们有相同数量应该随机选择1或0使用不同列的函数 - R
temp[,1]<- sapply(
temp[,1],
function(score){
if(temp[,3]>score){1}
else if(temp[,3]<score){0}else
else if(temp[,3]==score){sample(0:1,1)}})
这是我到目前为止的代码,但它是不完全的工作,我认为当我称之为“临时[3]”它返回一个向量与第三列中的所有行,我只想要该行中的一个条目对应于我用“score”得到的行。
托马斯我只是尝试这样的代码它运行完美。你能否解释为什么第二个ifelse嵌入第一个ifelse?你为什么要做rbinom(dim(temp)[1]),我认为这意味着你得到的每行都是随机数字? – appleLover
更新了一些额外的解释。 – Thomas
啊我明白了。我来自python我用来通过循环列表来解决这个问题。我喜欢r更适合矢量的方式。回答接受 – appleLover