首页 > 解决方案 > 采样一列数据框并在采样输出旁边挑选出值

问题描述

我需要按一列对数据框进行采样,然后获取采样值和所选值旁边的值以进行进一步计算。

例如,下面是一些代码。假设我在第一列(未使用)上采样,它选择了一个值。然后我想输出该值和一个两列(结转),并在同一行中..

dat <- data.frame(cbind(rnorm(30,600,sd=100),rnorm(30,300,sd=50),rnorm(30,200,sd=50),rnorm(30,200,sd=200)))
colnames(dat) <- c("unused","deduct","carryover","used")
unused <- dat$unused

  for (i in 1:10) {
    unused[i] <-matrix(sample(unused,size=1,replace=TRUE))
  }

标签: rfor-looprandom

解决方案


  dat <- data.frame(cbind(rnorm(30,600,sd=100),rnorm(30,300,sd=50),rnorm(30,200,sd=50),rnorm(30,200,sd=200)))
  colnames(dat) <- c("unused","deduct","carryover","used")

  set.seed(1)
  subsample <- dat[sample(seq_along(dat[, 1]), size = 10), c("unused", "carryover")]

subsample就是现在:

       unused carryover
  25 696.4313  120.7247
  4  541.7930  299.9415
  7  621.7899  194.5108
  1  383.2561  166.8942
  2  555.0840  210.4745
  23 509.4725  179.7150
  11 716.6414  214.2963
  14 531.1205  227.8825
  18 496.7440  140.7691
  19 588.5641  142.7861

推荐阅读