楼主: xiangweinn
11316 11

[问答] 矩阵赋值问题 [推广有奖]

11
kiddbai 发表于 2011-11-15 14:24:51
shenbaiseshatan 发表于 2011-11-15 12:48
学习了!
有点儿感想,split()函数返回值的list当中每个元素都是vector,因此还需要用lapply()之类的函数重新组合成矩阵,是否可以直接将被拆分对象做成data.frame,这样的话拆分的时候返回的就是data.frame的list,不需要重组。另外,split()函数中直接以因子名做元素名称,因此可以省略一步。
  1. a <- data.frame(round(matrix(rnorm(500*10), ncol=10), 3))
  2. list.a <- split(a, rep(paste('A', 1:100, sep=''), each=5))
复制代码
但是这样也会有问题,就是排列的时候是按照A1,A10,A100,A2……的顺序排列的,看着不太舒服,虽然A100的确是第496~500行,但list.a[[3]]返回的是A100,比较头疼。不知该如何解决!好像最后用names()这个办法可以避免这种情况。
捷径不好走啊!

12
shenbaiseshatan 在职认证  发表于 2011-11-15 16:37:19
kiddbai 发表于 2011-11-15 14:24
学习了!
有点儿感想,split()函数返回值的list当中每个元素都是vector,因此还需要用lapply()之类的函数 ...
其实split函数返回的不一定是向量,如果你是对数据框操作,返回的东西会比较让人欢喜
胜人者有力,自胜者强!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 22:01