Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将data.frame中的列堆叠为R中的一列

将data.frame中的列堆叠为R中的一列
EN

Stack Overflow用户
提问于 2012-11-28 03:03:44
回答 2查看 23.3K关注 0票数 10

我在将data.frame中的列堆叠成一列时遇到了问题。现在我的数据看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
id   time    black   white   red 
a     1       b1      w1     r1
a     2       b2      w2     r2
a     3       b3      w3     r3
b     1       b4      w4     r4
b     2       b5      w5     r5
b     3       b6      w6     r6

我正在尝试转换data.frame,使其看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
id   time  colour 
a     1     b1
a     2     b2
a     3     b3
b     1     b4
b     2     b5
b     3     b6
a     1     w1
a     2     w2
a     3     w3
b     1     w4
b     2     w5
b     3     w6
a     1     r1
a     2     r2
.     .     .
.     .     .
.     .     .

我猜这个问题需要使用reshape包,但我不太确定如何使用它将多列堆叠到一列下。有人能在这方面提供帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-28 03:12:35

这是来自重塑的熔化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(reshape)
melt(x, id.vars=c('id', 'time'),var='color')

而使用reshape2 (reshape的一个最新、更快的版本),语法几乎是相同的。

帮助文件中有一些有用的示例(参见?melt和指向melt.data.frame的链接)。

在您的示例中,类似以下内容将会起作用(假设您的data.frame名为DF)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(reshape2)
melt(DF, id.var = c('id','time'), variable.name = 'colour')
票数 12
EN

Stack Overflow用户

发布于 2014-03-30 06:34:12

既然你在标题中提到了“堆叠”,你也可以看看基数R中的stack函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cbind(mydf[1:2], stack(mydf[3:5]))
#    id time values   ind
# 1   a    1     b1 black
# 2   a    2     b2 black
# 3   a    3     b3 black
# 4   b    1     b4 black
# 5   b    2     b5 black
# 6   b    3     b6 black
# 7   a    1     w1 white
# 8   a    2     w2 white
# 9   a    3     w3 white
# 10  b    1     w4 white
# 11  b    2     w5 white
# 12  b    3     w6 white
# 13  a    1     r1   red
# 14  a    2     r2   red
# 15  a    3     r3   red
# 16  b    1     r4   red
# 17  b    2     r5   red
# 18  b    3     r6   red

如果“黑色”、“白色”和“红色”列中的值是factors,则需要首先将它们转换为character值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cbind(mydf[1:2], stack(lapply(mydf[3:5], as.character)))
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13597091

复制
相关文章
PostGIS查询指定范围的数据
对于上一篇PostGIS批量导入栅格数据中导入的气温数据,如何查询指定范围的气温呢? 比如,给定了经纬度范围,如何取出给定月份的数据? 下面的SQL代码给出了查询方法:
卡尔曼和玻尔兹曼谁曼
2019/01/22
3.7K0
PostGIS查询指定范围的数据
Oracle——无法在查询中执行 DML 操作
create or replace function test_f(id varchar2) return varchar2 is Result varchar2(100); begin insert into sfcs_temp_17109 (sn)values(id);
_一级菜鸟
2019/09/10
4.3K0
Oracle——无法在查询中执行 DML 操作
postgis常用函数介绍(二)
通过函数st_isempty(geom)可以判断geometry是否为空,返回是布尔型的true或者false,具体使用如下:
牛老师讲GIS
2018/10/23
2.1K0
postgis常用函数介绍(二)
postgis常用函数介绍(一)
在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,postgres的postgis以及mySQL的mysql gis等等,在本文,给大家介绍的是有关postgis的一些常用函数的意思以及使用。
牛老师讲GIS
2018/10/23
3.2K0
postgis常用函数介绍(一)
一条查询SQL在MySQL中是怎么执行的
平时我们使用的数据库,看到的通常是一个整体,比如我们执行一条查询SQL,返回一个结果集,却不知道这条语句在MySQL内部是如何执行的,接下来我们就来简单的拆解一下MySQL,看看MySQL是由哪些“零件”组成的,在这个过程中逐步的揭开MySQL的面纱,对MySQL有个深入的理解。这样在我们以后遇到MySQL的一些异常或者问题的时候,就可以快速定位问题并解决问题。
故里
2020/11/25
4.8K0
一条查询SQL在MySQL中是怎么执行的
PostgreSQL中的查询:1.查询执行阶段
PG客户端-服务协议的基本目的是双重的:将SQL查询发送到服务,接收整个执行结果作为响应。服务接收到查询去执行要经过几个阶段。
yzsDBA
2022/03/29
3.2K0
PostgreSQL中的查询:1.查询执行阶段
PostGIS特性
比如,Union操作符融合多边形之间的边界。两个交迭的多边形通过Union运算就会形成一个新的多边形,这个新的多边形的边界为两个多边形中最大边界。
cn華少
2018/09/11
1.7K0
PostGIS初探
PostGIS是PostgreSQL的空间扩展,他使得PostgreSQL支持空间数据类型,比如点、线段、折线段、多边形、椭圆等等,并且能够使用高效的空间索引进行存储和查找。
mythsman
2022/11/14
1.1K0
在 Emacs 中执行 Pyhton
最近在整理 Python 的相关的内容,主要需要整理成笔记,记录下来,等有需要的时候再进行复习。
zucchiniy
2019/10/30
1.3K0
【MYSQL函数】MYSQL中IF函数在where中的使用
WHERE IF(条件, true执行条件, false执行条件) 业务需求: 查询SUPPLIER_CLASS=0 and tp1.`TYPE_FLAG` = 1 或者 SUPPLIER_CLASS=1 实现有两种:
用户5640963
2019/07/25
12.3K0
POSTGIS 总结
PostGIS是一个空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。
小石头
2022/11/10
6.3K0
POSTGIS 总结
[ JavaScript ] 执行函数中改变 this 的指向以及方法
bind,apply,call 都是执行函数时,用来改变 this 的指向。另外,apply、call 是立即执行,而 bind 是调用的时候才执行。
GavinUI
2021/04/07
1.2K0
[ JavaScript ] 执行函数中改变 this 的指向以及方法
指针在函数中的作用
指针传递地址时,指针变量产生了副本,但副本与原变量所指的内存区域是同一个。对指针副本指向的变量进行改变,就是改变原指针变量所指向的变量。
跋扈洋
2022/04/27
2.9K0
指针在函数中的作用
JavaScript中DOM查询封装函数
在JavaScript中可以通过BOM查询html文档中的元素,也就是所谓的在html中获取对象然后对它添加一个函数。
马克社区
2022/04/14
6310
C++中构造函数、虚函数、析构函数的执行顺序
#include <iostream> using namespace std; class A { public: // 第一步:执行类A的构造函数,输出"构造函数A" A() { cout << "构造函数A" << endl; } virtual void func() { cout << "构造A" << endl; } // 第七步:执行类A的析构函数,输出"析构函数A" ~A() { cout << "析构函数A" <<
越陌度阡
2020/11/26
2.3K0
DNS在远程调用执行中的应用
纯属蹭log4j2热度文,和安全没有直接的关系,本文只谈DNS以及日志应用; 通过dnslog.cn的截图,分析dnslog.cn的原理,基于此,介绍了可以获取更多信息的ceye的功能;在应用场景上,我们通过该原理提供了用户出口IP同本地DNS递归出口IP的对应关系,延伸出了排障场景和数据分析场景。
hermanzeng
2021/12/14
6K3
DNS在远程调用执行中的应用
MySQL 查询执行的过程
查询的生命周期大致可以按照顺序来看:从客户端到服务端,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中 “执行” 可以认为是整个生命周期中最重要的阶段,其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序分组等。当希望 MySQL 能够以高性能的方式运行查询时,最好的办法就是弄清楚 MySQL 是如何优化和执行查询的。MySQL 执行一个查询的过程,如下:
Java架构师必看
2021/05/14
2.3K0
MySQL 查询执行的过程
Spring Data JPA 之 JpaRepository
JpaRepository是SpringBoot Data JPA提供的非常强大的基础接口。
全栈程序员站长
2022/11/01
2K0
Spring Data JPA 之 JpaRepository
Sql语句在Mysql中的执行流程
查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。
Qwe7
2022/02/11
4.7K0
点击加载更多

相似问题

在函数plpgsql (POSTGIS)中执行查询

21

Laravel查询中的PostGIS函数

20

PostGIS函数中的PostgreSQL查询

10

在Postgres中的PostGis上执行多个最近邻查询

13

%喜欢在spring JpaRepository中的%查询

159
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文