全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
14452 7
2014-11-27
请问在R里怎么把一个list按照list里每一项的名字合并到一个data frame里,像下边的这个例子一样
创建 data frame

library("plyr")

id <- rep(letters[1:3],4)
year <- seq(2001,2012)
df <- data.frame(id,year)

df <- arrange(df,id,year)

data frame df是这个样子的:


id    year
a    2001
a    2004
a    2007
a    2010
b    2002
b    2005
b    2008
b    2011
c    2003
c    2006
c    2009
c    2012


创建 list

mylist <-list(a=11, b=12, c=10, d=15)

我想把mylist里每个元素的名字“a”, “b”, “c”, “d”跟data frame df里的id对应,并把mylist作为一个新的列weight合并进df,我想得到的结果是
id    year    weight
a    2001    11
a    2004    11
a    2007    11
a    2010    11
b    2002    12
b    2005    12
b    2008    12
b    2011    12
c    2003    10
c    2006    10
c    2009    10
c    2012    10



请问在R里怎么实现?
二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-27 18:48:40
你可以换一种考虑方式:
1.创建一个新的向量:
2.对应id这列你有几个a字母,就在这一个新的向量里复制多少个11;
3.其余的依次
4.这一个新的向量加进原有data frame
二维码

扫码加我 拉你入群

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

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

2014-11-27 19:10:51
主要问题是怎么匹配df中的变量名称,一种比较笨的方法。
复制代码
二维码

扫码加我 拉你入群

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

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

2014-11-27 20:36:28
复制代码
二维码

扫码加我 拉你入群

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

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

2014-11-28 11:25:53
马甲1号 发表于 2014-11-27 20:36
多谢!这个就是我想要的!
二维码

扫码加我 拉你入群

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

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

2014-11-28 11:29:18
ywh19860616 发表于 2014-11-27 19:10
主要问题是怎么匹配df中的变量名称,一种比较笨的方法。
多谢!这个方法对这个简单的例子没问题,不过我的真实的数据比这个要复杂,所以不能只用个数对照来合并,必须要用名字对应。

@马甲1号的方法正好
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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