当前位置: 首页 > 知识库问答 >
问题:

R reshape2 dcast:转换数据

阎晔
2023-03-14

如何将数据X转换为Y

X = data.frame(
  ID = c(1,1,1,2,2),
  NAME = c("MIKE","MIKE","MIKE","LUCY","LUCY"),
  SEX = c("MALE","MALE","MALE","FEMALE","FEMALE"),
  TEST = c(1,2,3,1,2),
  SCORE = c(70,80,90,65,75)
)

Y = data.frame(
  ID = c(1,2),
  NAME = c("MIKE","LUCY"),
  SEX = c("MALE","FEMALE"),
  TEST_1 =c(70,65),
  TEST_2 =c(80,75),
  TEST_3 =c(90,NA)
)

假设一个ID列的所有其他列都是一致的,比如Mike只能是ID为1的男性,我们怎么做呢?

共有1个答案

慎望
2023-03-14

根据文档(?reshape2::dcast),dcast()允许在公式中使用...:

“……”表示公式中未使用的所有其他变量。..

对于reshape2data.table包都是这样,它们都支持dcast()

reshape2::dcast(X, ... ~ TEST, value.var = "SCORE")
#  ID NAME    SEX  1  2  3
#1  1 MIKE   MALE 70 80 90
#2  2 LUCY FEMALE 65 75 NA

但是,如果OP坚持列名应该是test_1test_2等,则在重新成形之前需要修改test列。这里使用data.table:

library(data.table)
dcast(setDT(X)[, TEST := paste0("TEST_", TEST)], ... ~ TEST, value.var = "SCORE")
#   ID NAME    SEX TEST_1 TEST_2 TEST_3
#1:  1 MIKE   MALE     70     80     90
#2:  2 LUCY FEMALE     65     75     NA

这与作为data.framey给出的预期答案一致。

 类似资料:
  •        在LSV中,可以对osgb生成lfp格式的索引文件。LSV支持顶点坐标以米为单位的osgb,不支持以度为单位的osgb。在“倾斜摄影”菜单栏中点击“数据转换”,弹出对话框,包含转换数据的基本信息、位置信息、旋转和缩放信息,在基本信息中,添加储存osgb数据的DATA文件夹。        注意要添加包含osgb文件所有Tile文件夹的DATA文件夹。        设置输出的lfp文

  • Excel转KML        在“数据处理”菜单栏中,点击“Excel转KML”,弹出对话框,点击打开XLS,选择要转换的Excel文件(可以添加LSV文件夹下示例数据中的EXCEL2KML示例数据.xls进行测试),读取完成后,可以在上方的表格里看到Excel里的信息。在Excel表格内容的下面分了两块,左侧一块为经纬度和气泡内容的选择,右侧一块是对要生成的kml图层的风格的设置。    

  • JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予任意值。但是,数据本身和各种运算是有类型的,因此运算时变量需要转换类型。大多数情况下,这种数据类型转换是自动的,但是有时也需要手动强制转换。 强制转换 Number函数:强制转换成数值 String函数:强制转换成字符串 Boolean函数:强制转换成布尔值 自动转换 自动转换为布尔值 自动转换为字符串 自动转换为数值 小结 加

  • Angular 2有很多可用于转换数据的过滤器和管道。 lowercase 这用于将输入转换为全小写。 语法 (Syntax) Propertyvalue | lowercase 参数 (Parameters) 没有 结果 (Result) 属性值将转换为小写。 例子 (Example) 首先确保app.component.ts文件中存在以下代码。 import { Component

  • scikit-learn 提供了一个用于转换数据集的库, 它也许会 clean(清理)(请参阅 预处理数据), reduce(减少)(请参阅 无监督降维), expand(扩展)(请参阅 内核近似)或 generate(生成)(请参阅 特征提取) feature representations(特征表示). 像其它预估计一样, 它们由具有 fit 方法的类来表示, 该方法从训练集学习模型参数(例如

  • JOGL Transformation 转换 是一种为图形对象提供特殊效果的机制。这些效果在创建图像后应用。以下是常用的转换函数: JOGL glLoadIdentity() 方法 glLoadIdentity() 方法用单位矩阵替换当前的变换矩阵 它可以在执行转换之前重置当前的转换矩阵。 JOGL glTranslate() 方法 glTranslate() 方法将当前矩阵乘以一个平移矩阵。 要

  • 问题内容: 我有一个要读取数据的CSV文件,我想将其读入Python。我得到包含类似字符串的列表。现在这样做不起作用,因为它的小数点错误。 我如何将其读入Python ? 问题答案: 在大多数情况下会做 如果数量庞大且已使用了数千个,则可以: 将所有逗号替换为要点: 删除除最后一点以外的所有内容:

  • 问题内容: 我的数据库是Postgres8。我需要将数据类型转换为另一个。这意味着column数据类型之一是并且需要在语句中将其与Postgres一起转换。 当前,我获取字符串值并将其转换为Java语言。 有什么办法吗?示例代码将不胜感激。 问题答案: cast(varchar_col AS int) – SQL standard 要么 这些语法变体在 任何地方 (几乎)都有效。第二种在特殊情况下