繁体   English   中英

随机化矩阵中的列名

[英]Randomizing column names in matrix

我正在尝试创建一个具有一组固定列值的矩阵,但在该固定值内,我想增加到一定数量。 下面更好的解释......(希望如此)

例如,我想要列标题 ODI.1.1、ODI.1.2、... ODI.1.30,然后转到 ODI.2.1、ODI.2.2、...并重复 ODI.8.10。 因此,每个 ODI 值中的第一个数字可以变为 8,语句中的第二个数字可以随机变为 1-30。

这是我现在拥有的代码。 我知道这是不对的,因为我现在将列设置为 30,我只是试图以增量方式分配 30 列 ODI.1.1、ODI1.2.、.... 值。

这就是我目前所拥有的,我再次希望能够达到 ODI.8.1 值,但我不确定如何从这里开始。 我再次希望语句的第二个数字 (ODI.1. 2 ) 随机出现。 我不太确定该怎么做……下面是我想要实现的目标的示例。

    ODI.1.1 ODI.1.2 ...... ODI.1.10
    ODI.2.1 ODI.2.2 ...... ODI.2.18
    ODI.3.1 ODI.1.2 ...... ODI.3.28

下面是我现在拥有的代码。 我可以为语句 ODI 中的第一个数字打印出从 1 到 8 的随机 ODI 语句列表。 1 .1,但我无法根据语句 ODI.1 中的第二个数字创建有序随机列表。 1

n = 35
ODI = "ODI"
firstValue = 1:8
secondValue = 1:20

x <- sort(paste(ODI, firstValue, secondValue, sep ="."), 
        decreasing = FALSE)
x

使用现在的代码,我得到了这个结果......

 "ODI.1.1"  "ODI.1.17" "ODI.1.9"  "ODI.2.10" "ODI.2.18" "ODI.2.2"  "ODI.3.11"

第二个值不是像 1.1、1.2、1.3 那样随机排序的。

我不知道这是否是您想要的,但我们可以创建这些列名称的所有可能组合,然后您可以从中随机抽样给定数量。

wat=expand.grid(1:8,1:30)
wat=paste0("ODI.",wat[,"Var1",drop=T],".",wat[,"Var2",drop=T])
sample(wat,5)
[1] "ODI.5.18" "ODI.1.30" "ODI.3.20" "ODI.3.1"  "ODI.3.13"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM