Dan*_*age 5 r vector set data-partitioning
我在用R.编程.我有一个包含,比如1000个值的向量.现在让我们说我想将这1000个值随机分成两个新的集合,一个包含400个值,另一个包含600个.我怎么能这样做?我想过做这样的事......
firstset <- sample(mydata, size=400)
Run Code Online (Sandbox Code Playgroud)
...但是这不会对数据进行分区(换句话说,我仍然不知道要在另一组中放入哪600个值).我还想过从1到400的循环,一次随机删除1个值并将其放入firstset.这会正确地划分数据,但是如何实现这一点对我来说并不清楚.另外,我被告知尽可能避免forR中的循环.
有任何想法吗?
您可以对其位置进行采样,而不是对值进行采样.
positions <- sample(length(mydata), size=400) # ucfagls' suggestion
firstset <- mydata[positions]
secondset <- mydata[-positions]
Run Code Online (Sandbox Code Playgroud)
编辑:ucfagls的建议将更有效(特别是对于较大的向量),因为它避免在R中分配位置向量.
只需随机化mydata并获取前400,然后持续600.
mydata <- sample(mydata)
firstset <- mydata[1:400]
secondset <- mydata[401:1000]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10119 次 |
| 最近记录: |