r - R 中的数据转换

标签 r

我需要以不同的方式查看数据框中的数据。问题来了..

我有一个数据框如下

Person  Item  BuyOrSell
1        a    B
1        b    S
1        a    S
2        d    B
3        a    S
3        e    S

我需要它变成这样。显示此人对单个项目进行的所有交易的总和。

Person   a   b    d   e
1        2   1    0   0
2        0   0    1   0
3        1   0    0   1

我能够通过使用

实现上述目标

R 中的table(Person,Item)

我的新需求是看到数据如下。显示此人对按交易类型(B 或 S)分割的单个项目进行的所有交易的总和

Person    aB   aS   bB   bS   dB   dS   eB   eS
1          1    1    0    1    0    0   0     0
2          0    0    0    0    1    0   0     0
3          1    0    0    0    0    0   0     1

所以我创建了一个新列并附加了 Item 和 BuyOrSell 的值。

df$newcol<-paste(Item,"-",BuyOrSell,sep="")
table(Person,newcol) 

并能取得上述成果。

在 R 中是否有更好的方法来进行这种类型的转换?

最佳答案

您的方法(通过paste 创建一个新列)可能是最简单的。你也可以这样做:

require(reshape2)
dcast(Person~Item+BuyOrSell,data=df,fun.aggregate=length,drop=FALSE)

关于r - R 中的数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15417698/

相关文章:

r - 如何按数字顺序对带整数的字符串进行排序?

r - 从时间中提取小时的最快方法(HH :MM)

r - 如何制作散点图显示单个基因与多个基因之间的相关性?

r - 如何在stringi包中使用反向引用?

linux - R 核心转储去哪里了?

html - Kable、Flextable、Huxtable 到 HTML : force the display of cell contents on a single line

r - 使用 R 处理数据

将列表对象中的 NaN/Inf/NA 替换为 0

应该将 xts 类数据绘制到 png 文件的 R 脚本不会生成 png 文件

r - 基于 R 中不同数据框的值进行子集化