首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将dataframe与dataframe的名称绑定为附加的id列

将dataframe与dataframe的名称绑定为附加的id列
EN

Stack Overflow用户
提问于 2018-11-11 00:30:39
回答 3查看 191关注 0票数 1

我在R中有3个数据帧,假设:

代码语言:javascript
运行
复制
df1 <- data.frame(x = 1:5, y = 1:5)
df2 <- data.frame(x = 1:6, y = 1:6)
df3 <- data.frame(x = 1:4, y = 1:4)

我想将它们合并在一起,以创建一个新的数据帧,该数据帧的第一列是该数据帧的每一行的数据帧的名称。我看起来就像这样:

代码语言:javascript
运行
复制
   df x y
1  df1 1 1
2  df1 2 2
3  df1 3 3
4  df1 4 4
5  df1 5 5
6  df2 1 1
7  df2 2 2
8  df2 3 3
9  df2 4 4
10 df2 5 5
11 df2 6 6
12 df3 1 1
13 df3 2 2
14 df3 3 3
15 df3 4 4

有什么想法吗?提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2018-11-11 00:58:22

使用dplyr包中的bind_rows。这将适用于任意数量的数据帧。ls调用获取名称空间中以‘df’开头的所有变量;mget为您提供一个已命名的数据帧列表。.id参数允许您指定列名。

代码语言:javascript
运行
复制
df_out <- bind_rows(mget(ls(pattern='df')), .id='df')

输出如下:

代码语言:javascript
运行
复制
    df x y
1  df1 1 1
2  df1 2 2
3  df1 3 3
4  df1 4 4
5  df1 5 5
6  df2 1 1
7  df2 2 2
8  df2 3 3
9  df2 4 4
10 df2 5 5
11 df2 6 6
12 df3 1 1
13 df3 2 2
14 df3 3 3
15 df3 4 4
票数 2
EN

Stack Overflow用户

发布于 2018-11-11 00:55:19

坚持使用base R函数,并在NelsonGon的答案上稍作扩展:

代码语言:javascript
运行
复制
d <- rbind(df1=df1, df2=df2, df3=df3)
d <- cbind(df=sub("..$", "", rownames(d)), data.frame(d, row.names=NULL))
d
    df x y
1  df1 1 1
2  df1 2 2
3  df1 3 3
4  df1 4 4
5  df1 5 5
6  df2 1 1
7  df2 2 2
8  df2 3 3
9  df2 4 4
10 df2 5 5
11 df2 6 6
12 df3 1 1
13 df3 2 2
14 df3 3 3
15 df3 4 4

这将使用cbind将修改后的行名添加为列。

票数 1
EN

Stack Overflow用户

发布于 2018-11-11 00:43:30

这里有一个简单而非常基本的方法:

代码语言:javascript
运行
复制
rbind(df1=df1,df2=df2,df3=df3)

结果是:

代码语言:javascript
运行
复制
      x y
df1.1 1 1
df1.2 2 2
df1.3 3 3
df1.4 4 4
df1.5 5 5
df2.1 1 1
df2.2 2 2
df2.3 3 3
df2.4 4 4
df2.5 5 5
df2.6 6 6
df3.1 1 1
df3.2 2 2
df3.3 3 3
df3.4 4 4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53241006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档