php 下标用变量赋值问题 $id=1(随机得到); $arr是二维数组,$arr[id][name] 我需要得到这个值。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 下标用变量赋值问题 $id=1(随机得到); $arr是二维数组,$arr[id][name] 我需要得到这个值。相关的知识,希望对你有一定的参考价值。

怎么将$id 的值放到$arr[id]上,得到$arr[id][name]值???急用,在线等。

<?php
$arr = array('0'=>array('name'=>'aaaa'),'1'=>array('name'=>'bbbb'));
$id = rand(0,1);
foreach($arr as $key=>$val)
echo $arr[$id]['name'];

?>
参考技术A $id=rand(0,10);
echo $arr[$id][name]

下标越界(随机森林的插入符号变量重要性)[重复]

【中文标题】下标越界(随机森林的插入符号变量重要性)[重复]【英文标题】:Subscript out of bounds (Caret variable importance for randomForest) [duplicate] 【发布时间】:2013-09-05 09:45:05 【问题描述】:

我已经用 R 训练了一个模型:

require(caret)
require(randomForest)
myControl = trainControl(method='cv',number=5,repeats=2,returnResamp='none')
model2 = train(increaseInAssessedLevel~., data=trainData, method = 'rf', trControl=myControl)

数据集相当大,但模型运行良好。我可以访问它的部分并运行以下命令:

> model2[3]
$results
  mtry      RMSE  Rsquared      RMSESD RsquaredSD
1    2 0.1901304 0.3342449 0.004586902 0.05089500
2   61 0.1080164 0.6984240 0.006195397 0.04428158
3  120 0.1084201 0.6954841 0.007119253 0.04362755

但我收到以下错误:

> varImp(model2)
Error in varImp[, "%IncMSE"] : subscript out of bounds

显然应该有一个包装器,但似乎不是这样:(cf:http://www.inside-r.org/packages/cran/caret/docs/varImp)

varImp.randomForest(model2)
Error: could not find function "varImp.randomForest"

但这特别奇怪:

> traceback()
No traceback available 

> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
 [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] elasticnet_1.1     lars_1.2           klaR_0.6-9         MASS_7.3-26       
 [5] kernlab_0.9-18     nnet_7.3-6         randomForest_4.6-7 doMC_1.3.0        
 [9] iterators_1.0.6    caret_5.17-7       reshape2_1.2.2     plyr_1.8          
[13] lattice_0.20-15    foreach_1.4.1      cluster_1.14.4    

loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_3.0.1  grid_3.0.1      stringr_0.6.2  
[5] tools_3.0.1  

【问题讨论】:

【参考方案1】:

train() 语句中,需要指定选项importance=T。这将传递给底层的随机森林调用。否则,不会计算重要性,给你这个错误。

【讨论】:

以上是关于php 下标用变量赋值问题 $id=1(随机得到); $arr是二维数组,$arr[id][name] 我需要得到这个值。的主要内容,如果未能解决你的问题,请参考以下文章

PHP 零基础入门笔记(12):数组 array

PHP篇数组

c语言中为数组随机赋值

为啥我使用 PHP 的 $_SERVER 变量得到一个随机字符串作为 IP 地址?

php中怎样从一个数组中随机取一个元素出来呢?

PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量