基于因子列转置数据帧

时间:2017-03-23 17:03:57

标签: r dataframe plot scatter-plot

假设我有一个以下格式的数据帧,从.csv文件中获取:

Measurement    Config  Value
---------------------------    _
Time           A       10       |      
Object         A       20       | Run 1    
Nodes          A       30      _|     
Time           A       8        |     
Object         A       18       | Run 2
Nodes          A       29      _|
Time           B       9        |
Object         B       20       | Run 3
Nodes          B       35      _|
...

每次运行时都会有固定数量的Measurements,每次运行都会使用给定的Config运行。 每次运行Measurements是固定的(例如,每次运行都包含上面示例中的时间,对象和节点测量),但单个配置可以有多次运行(例如,配置{{1} }在上面的示例中运行了两次,A只运行一次)

我的主要目标是绘制两种测量类型之间的相关性(散点图),例如,将B(x轴)与Objects(y轴)进行对比,并突出显示不同的{{ 1}}(颜色)

我认为如果数据帧采用以下格式,则可以最好地实现这一目标:

Nodes

即,根据Configs - 列的因子值创建列,并将相应的Config Time Objects Nodes -------------------------- A 10 20 30 <- Run 1 A 8 18 29 <- Run 2 B 9 20 35 <- Run 3 - 值分配给单元格。

是否有&#34;容易&#34;在R中实现这一目标的方式?

1 个答案:

答案 0 :(得分:2)

首先创建一个FriendsItem变量:

run

然后使用# option 1: d$run <- ceiling(seq_along(d$Measurement)/3) # option 2: d$run <- 1 + (seq_along(d$Config)-1) %/% 3 dcast中的reshape2函数重新制作宽幅广告格式:

data.table
然后你会得到:

reshape2::dcast(d, Config + run ~ Measurement, value.var = 'Value')