当前位置: 首页 > news >正文

在R中将列表(list)转换为向量(vector)

问题:将列表中的所有元素“展平”,赋值给一个向量

解决方案:使用unlist()函数;

在许多情况下需要向量,例如,baseR中的许多统计函数需要一个向量作为输入,例如,如果iq.score是一个包含数值的列表,那么我们不可以直接计算它的平均值。因为mean()函数接受一个向量作为输入,而iq.score是一个列表对象,即

> iq.scores <- list(100, 120, 103, 80, 99)
> mean(iq.scores)
[1] NA
Warning message:
In mean.default(iq.scores) : 参数不是数值也不是逻辑值:回覆NA

使用unlist()将列表对象展开成向量。

> mean(unlist(iq.scores))
[1] 100.4
> unlist(iq.scores)
[1] 100 120 103  80  99
> mean(c(100,120,103, 80,99))

 上面这个例子非常简单,因为这个列表每个元素是由一个数值构成的。

 例子2:列表的每个元素是由向量构成,即

> ex2 <- list(1:100, 101:200, 201:300, 301:400, 401:500)
> mean(unlist(ex2))
[1] 250.5
> unlist(ex2)[1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17[18]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34[35]  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51[52]  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68[69]  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85[86]  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102
[103] 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
[120] 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
[137] 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
[154] 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
[171] 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
[188] 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
[205] 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
[222] 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
[239] 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
[256] 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
[273] 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
[290] 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
[307] 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
[324] 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
[341] 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
[358] 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
[375] 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391
[392] 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408
[409] 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425
[426] 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442
[443] 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459
[460] 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476
[477] 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493
[494] 494 495 496 497 498 499 500

例3:

列表的每个元素是向量,并且向量的长度相等,就如例2中一样,这样可以将这个列表变成矩阵的形式。

> ex2 <- list(1:100, 101:200, 201:300, 301:400, 401:500)
> matrix(unlist(ex2), nrow=100,ncol=5, byrow=FALSE)[,1] [,2] [,3] [,4] [,5][1,]    1  101  201  301  401[2,]    2  102  202  302  402[3,]    3  103  203  303  403[4,]    4  104  204  304  404[5,]    5  105  205  305  405[6,]    6  106  206  306  406[7,]    7  107  207  307  407[8,]    8  108  208  308  408[9,]    9  109  209  309  409[10,]   10  110  210  310  410[11,]   11  111  211  311  411[12,]   12  112  212  312  412[13,]   13  113  213  313  413[14,]   14  114  214  314  414[15,]   15  115  215  315  415[16,]   16  116  216  316  416[17,]   17  117  217  317  417[18,]   18  118  218  318  418[19,]   19  119  219  319  419[20,]   20  120  220  320  420[21,]   21  121  221  321  421[22,]   22  122  222  322  422[23,]   23  123  223  323  423[24,]   24  124  224  324  424[25,]   25  125  225  325  425[26,]   26  126  226  326  426[27,]   27  127  227  327  427[28,]   28  128  228  328  428[29,]   29  129  229  329  429[30,]   30  130  230  330  430[31,]   31  131  231  331  431[32,]   32  132  232  332  432[33,]   33  133  233  333  433[34,]   34  134  234  334  434[35,]   35  135  235  335  435[36,]   36  136  236  336  436[37,]   37  137  237  337  437[38,]   38  138  238  338  438[39,]   39  139  239  339  439[40,]   40  140  240  340  440[41,]   41  141  241  341  441[42,]   42  142  242  342  442[43,]   43  143  243  343  443[44,]   44  144  244  344  444[45,]   45  145  245  345  445[46,]   46  146  246  346  446[47,]   47  147  247  347  447[48,]   48  148  248  348  448[49,]   49  149  249  349  449[50,]   50  150  250  350  450[51,]   51  151  251  351  451[52,]   52  152  252  352  452[53,]   53  153  253  353  453[54,]   54  154  254  354  454[55,]   55  155  255  355  455[56,]   56  156  256  356  456[57,]   57  157  257  357  457[58,]   58  158  258  358  458[59,]   59  159  259  359  459[60,]   60  160  260  360  460[61,]   61  161  261  361  461[62,]   62  162  262  362  462[63,]   63  163  263  363  463[64,]   64  164  264  364  464[65,]   65  165  265  365  465[66,]   66  166  266  366  466[67,]   67  167  267  367  467[68,]   68  168  268  368  468[69,]   69  169  269  369  469[70,]   70  170  270  370  470[71,]   71  171  271  371  471[72,]   72  172  272  372  472[73,]   73  173  273  373  473[74,]   74  174  274  374  474[75,]   75  175  275  375  475[76,]   76  176  276  376  476[77,]   77  177  277  377  477[78,]   78  178  278  378  478[79,]   79  179  279  379  479[80,]   80  180  280  380  480[81,]   81  181  281  381  481[82,]   82  182  282  382  482[83,]   83  183  283  383  483[84,]   84  184  284  384  484[85,]   85  185  285  385  485[86,]   86  186  286  386  486[87,]   87  187  287  387  487[88,]   88  188  288  388  488[89,]   89  189  289  389  489[90,]   90  190  290  390  490[91,]   91  191  291  391  491[92,]   92  192  292  392  492[93,]   93  193  293  393  493[94,]   94  194  294  394  494[95,]   95  195  295  395  495[96,]   96  196  296  396  496[97,]   97  197  297  397  497[98,]   98  198  298  398  498[99,]   99  199  299  399  499
[100,]  100  200  300  400  500

参考:

《R语言经典实例(原书第2版)》(2020年5月出版, 机工社)(这本书写的很好,对于初学者很友好,推荐)

http://www.lryc.cn/news/120735.html

相关文章:

  • access怎么做进销存?借助access开发进销存管理应用
  • css实现卡片的左上角有一个三角形的遮盖效果
  • 中间件RabbitMQ消息队列介绍
  • MySQL不知道密码,直接修改密码
  • Win10关闭自动更新的方法和影响(Windows modules installer worker cpu占用过高)
  • Xcode 基座打包
  • 最强自动化测试框架Playwright(9)- 下载文件
  • python爬虫实战(1)——网站小说
  • git: ‘lfs‘ is not a git command. see ‘git --help‘
  • python案例
  • leetcode 63. 不同路径 II
  • c语言每日一练(5)
  • pycharm配置conda虚拟环境
  • ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)
  • MySQL DQL 数据查询
  • 深度学习基础知识笔记
  • 怎么系统的学习机器学习、深度学习?当然是看书了
  • 无涯教程-Perl - binmode函数
  • Spring Boot Maven package时显式的跳过test内容
  • 排序算法————基数排序(RadixSort)
  • leetcode做题笔记75颜色分类
  • 聊一下互联网开源变现
  • PHP日期差计算器,计算两个时间相差 年/月/日
  • 20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式
  • matlab使用教程(13)—稀疏矩阵创建和使用
  • UI美工设计的主要职责(合集)
  • 【前端二次开发框架关于关闭eslint】
  • Scractch3.0_Arduino_ESP32_学习随记_蓝牙键盘(三)
  • Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
  • LeetCode 2811. Check if it is Possible to Split Array【脑筋急转弯;前缀和+动态规划或记忆化DFS】中等