【发布时间】:2021-08-08 14:02:29
【问题描述】:
我正在尝试为我想要向下采样数据的函数分配一个值。
该函数应以块的形式迭代数据集,但如果迭代器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]
)
长度(n) [1] 1 n [1] 261
n = n[sample( n, chunkSize)] 行没有ifelse() 也能正常工作
> length(n)
[1] 98
> n
[1] 698 129 85 683 563 598 366 876 965 569 900 54 141 734 33 96 736 311 685 202 663 597
[23] 795 625 763 961 624 352 162 753 524 693 229 173 544 493 477 526 367 716 525 732 198 211
[45] 675 413 708 745 669 715 267 639 519 730 18 588 850 99 4 691 560 682 807 566 568 304
[67] 69 798 474 747 684 117 704 258 410 618 381 281 429 399 824 244 31 558 253 135 326 328
[89] 452 228 608 38 216 156 773 446 827 528
我猜这与 ifelse() 有关,但我是 R 的初学者,到现在我已经花了很多时间试图解决这个问题。
有人能指出导致这种行为的原因或提出替代解决方案吗?
非常感谢!
【问题讨论】:
标签: r if-statement indexing