R 根据ifelse()分配变量值
我试图给一个函数的输出赋值,在这个函数中,我想向下采样数据。 函数应该以块的形式在数据集上迭代,但如果迭代器R 根据ifelse()分配变量值,r,if-statement,indexing,R,If Statement,Indexing,我试图给一个函数的输出赋值,在这个函数中,我想向下采样数据。 函数应该以块的形式在数据集上迭代,但如果迭代器k(此处未显示)已完成对整个数据集的迭代,则函数应该返回一个随机块 问题在于,当试图通过检查索引和分配随机值进行区分时,从ifelse()语句返回的值是一个整数 n = c(1:972) #indices of negative class chunkSize = 98 start = 1 stop = -97 n = ifelse(stop < 0, n[sa
k
(此处未显示)已完成对整个数据集的迭代,则函数应该返回一个随机块
问题在于,当试图通过检查索引和分配随机值进行区分时,从ifelse()
语句返回的值是一个整数
n = c(1:972) #indices of negative class
chunkSize = 98
start = 1
stop = -97
n = ifelse(stop < 0,
n[sample( n, chunkSize)],
n[start:stop]
)
我想这和ifelse()
有关,但我是R的初学者,我已经花了很多时间试图解决这个问题
有人能指出是什么导致了这种行为,或者想出一个替代的解决方案吗
非常感谢 当您有单个值要检查时,请使用
if
/else
而不是ifelse
ifelse
用于向量
n = c(1:972)
chunkSize = 98
start = 1
stop = -97
n = if(stop < 0) n[sample( n, chunkSize)] else n[start:stop]
n=c(1:972)
chunkSize=98
开始=1
停止=-97
n=if(stop<0)n[样本(n,chunkSize)]else n[开始:停止]
n = c(1:972)
chunkSize = 98
start = 1
stop = -97
n = if(stop < 0) n[sample( n, chunkSize)] else n[start:stop]