【问题标题】:generate a column of random numbers生成一列随机数
【发布时间】:2021-08-21 12:04:39
【问题描述】:

我想在 R 中生成一列随机数,取值在 1 到 371 之间,但我得到一个我无法修复的错误。

这里是代码

library(readstata13)

#load data sets
data1<- read.dta13("file1.dta", convert.factors = FALSE, select.cols=(c("var1") ))

data2<- read.dta13("file2.dta", convert.factors = FALSE, select.cols=(c("var2") ))

finaldataset <-rbindlist(list(data1, data2),idcol=TRUE)

set.seed(123456789)

finaldataset$lad<-sample(371)

这是我收到的错误消息

Error in set(x, j = name, value = value) : 
  Supplied 371 items to be assigned to 36137 items of column 'lad'. If you wish to 'recycle' the RHS please use rep() to make this intent clear to readers of your code.

任何帮助将不胜感激,谢谢

【问题讨论】:

  • finaldataset$lad &lt;- sample(1:371, length(finaldataset$lad)) ?

标签: r sample recycle rep


【解决方案1】:

我无法加载您的数据并因此对其进行检查,但是,您似乎正在尝试创建一个与最终数据集中的列长度不同的列。 仅使用 sample(371) 只会创建 371 个值,因此,您需要指定要创建多少个值,即与其他数据长度相同的大小。

【讨论】:

  • 谢谢,我实际上使用了另一个命令,通过这个命令指定数据集中的行数 finaldataset$lad
  • 也许您可以尝试其他注释中的代码行,但是,将 $lad 替换为现有的列名,例如如果在finaldataset 中有一个名为col1 的列,则使用finaldataset$lad &lt;- sample(1:371, length(finaldataset$col1))
  • 非常感谢大卫,这非常有效!
猜你喜欢
  • 1970-01-01
  • 2013-04-22
  • 2023-01-03
  • 1970-01-01
  • 2011-09-18
  • 2012-12-29
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
相关资源
最近更新 更多