楼主: zxun
2246 9

[问答] lapply的结果为什么是 list of list? [推广有奖]

  • 5关注
  • 5粉丝

博士生

89%

还不是VIP/贵宾

-

威望
0
论坛币
461 个
通用积分
32.9051
学术水平
21 点
热心指数
22 点
信用等级
20 点
经验
5729 点
帖子
468
精华
0
在线时间
231 小时
注册时间
2010-5-20
最后登录
2022-11-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
> lapply(1:6, paste0, "s")
[[1]]
[1] "1s"

[[2]]
[1] "2s"

[[3]]
[1] "3s"

[[4]]
[1] "4s"

[[5]]
[1] "5s"

[[6]]
[1] "6s"
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:lapply apply list appl IST

沙发
jiangbeilu 学生认证  发表于 2015-12-7 14:37:52 |只看作者 |坛友微信交流群
首先,这个不是list of list,这个就是一个list

第二,你要区分lapply和sapply的不同。
你把函数换成sapply试一下?
已有 1 人评分热心指数 收起 理由
ryoeng + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

使用道具

藤椅
zxun 发表于 2015-12-7 14:47:25 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2015-12-7 14:37
首先,这个不是list of list,这个就是一个list

第二,你要区分lapply和sapply的不同。
这就是list of list
[[2]]已经提示了 第二个元素是一个列表,而且是一个只有一个元素的列表
不信用[2]取元素试试看?

其次,sapply的效果更烂

使用道具

板凳
jiangbeilu 学生认证  发表于 2015-12-7 15:32:48 |只看作者 |坛友微信交流群
zxun 发表于 2015-12-7 14:47
这就是list of list
[[2]]已经提示了 第二个元素是一个列表,而且是一个只有一个元素的列表
不信用[2]取 ...
一层list是只有一组[[ ]],里面并没有嵌套list,你说的这个,应该是list of vectors

sapply的效果是向量,
  1. sapply(1:6,paste0,"s")
  2. [1] "1s" "2s" "3s" "4s" "5s" "6s"
复制代码

使用道具

报纸
suimong 发表于 2015-12-7 23:06:48 |只看作者 |坛友微信交流群
zxun 发表于 2015-12-7 14:47
这就是list of list
[[2]]已经提示了 第二个元素是一个列表,而且是一个只有一个元素的列表
不信用[2]取 ...
直接打印一个list很容易看不清楚list的结构,推荐用str()函数看。
  1. > str(lapply(1:6, paste0, "s"))
  2. List of 6
  3. $ : chr "1s"
  4. $ : chr "2s"
  5. $ : chr "3s"
  6. $ : chr "4s"
  7. $ : chr "5s"
  8. $ : chr "6s"
复制代码
这是一个list of vector, 不是list of list.

使用道具

地板
zxun 发表于 2015-12-8 09:10:57 |只看作者 |坛友微信交流群
suimong 发表于 2015-12-7 23:06
直接打印一个list很容易看不清楚list的结构,推荐用str()函数看。这是一个list of vector, 不是list of l ...
你怎么知道是vector?

list也可以用numeric character创建
  1. > x=numeric()
  2. > for(i in 1:6){x[i]=i}
  3. > x
  4. [1] 1 2 3 4 5 6
复制代码

使用道具

7
zxun 发表于 2015-12-8 10:04:04 |只看作者 |坛友微信交流群
zxun 发表于 2015-12-8 09:10
你怎么知道是vector?

list也可以用numeric character创建
哦,这种创建的就是vector,R里面的vector的元素个数是可变的,只是必须是同种数据格式

使用道具

8
suimong 发表于 2015-12-8 15:18:31 |只看作者 |坛友微信交流群
zxun 发表于 2015-12-8 09:10
你怎么知道是vector?

list也可以用numeric character创建
比如看我代码的第二行,“List of 6"表示这是一个有6个元素的list,往下从第3到第8行显示了每个元素的结构。在R里如果是vector的话,那么在打印的时候R会把vector内的元素类型(这里是chr)打印在前面。而如果是你理解的List的话,那么从第三行开始r还是会打印”List of x",然后在下一行继续打印这个子List里的内容。

使用道具

9
zxun 发表于 2015-12-11 21:11:42 |只看作者 |坛友微信交流群
suimong 发表于 2015-12-8 15:18
比如看我代码的第二行,“List of 6"表示这是一个有6个元素的list,往下从第3到第8行显示了每个元素的结构 ...
str()函数?

使用道具

10
suimong 发表于 2015-12-12 17:38:20 |只看作者 |坛友微信交流群
zxun 发表于 2015-12-11 21:11
str()函数?
你还有哪里不明白吗?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-9 06:13