[英]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.