全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
747 4
2021-12-15
学习R语言的新手。
一个dataframe数据框
df1<-data.frame('产品名称'=c('A','B','C'),'2016年'=c(201,23,2130),'2017年'=c(423,25,2087),'2018年'=c(190,29,2019))
> df1
  产品名称 X2016年 X2017年 X2018年
1        A     201     423     190
2        B      23      25      29
3        C    2130    2087    2019


注:产品名称是不重复的。
因为作图需要,需要从这个数据框中提取出列表list,以产品名称作为列表名称,对应行数据为列数据,如下:

微信截图_20211215160718.png

请教各位大神,这个用哪个函数,怎么实现? 谢谢!


二维码

扫码加我 拉你入群

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

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

全部回复
2021-12-15 17:06:10
初学者的话给你写个初阶方法,有助于学习 R 的 for 循环。不过什么样的图要用列表来画。
复制代码

二维码

扫码加我 拉你入群

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

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

2021-12-15 17:37:10
s609078902 发表于 2021-12-15 17:06
初学者的话给你写个初阶方法,有助于学习 R 的 for 循环。不过什么样的图要用列表来画。
谢谢老师。
先做一个空list,然后用for去填充数据框中的内容,对吧。

这是kableExtra包里的画图函数参数需要使用列表。

再次感谢老师的帮助,谢谢!
二维码

扫码加我 拉你入群

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

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

2021-12-15 17:58:34
s609078902 发表于 2021-12-15 17:06
初学者的话给你写个初阶方法,有助于学习 R 的 for 循环。不过什么样的图要用列表来画。
运行了一下,提示错误:
Error in .subset2(x, ..2, exact = exact) :
recursive indexing failed at level 2
2.
`[[.data.frame`(df, i, 2:4)
1.
df[[i, 2:4]]

查了一下,是data[[i,2:4]]出错了。
二维码

扫码加我 拉你入群

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

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

2021-12-16 14:36:30
s609078902 发表于 2021-12-15 17:06
初学者的话给你写个初阶方法,有助于学习 R 的 for 循环。不过什么样的图要用列表来画。
d <- vector("list", nrow(data))
names(d) <- data[[1]]

for (i in seq_along(d)) {
  d[] <- t(data)[,i]
}
基本解决问题。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群