R通过观察数据帧属性进行比较

时间:2015-09-26 19:25:05

标签: r ggplot2 dataframe reshape melt

我目前正在尝试分析处理方法的不同策略。对于总共64个不同的数据帧行,有4个量的2个选项(2 ^ 4)和1个量的4个选项(4)。例如,数据框的结构如下:

Overall_Name | option1 | option2 | option3  | option 4 | option5 | value

每个对象是与该选项对应的3个字符的字符串。

我希望能够根据选项进行比较,例如,如果我正在测试比较option1,我希望其他4个选项形成x轴(类似于option2.option3。 option4.option5)和y轴是值,因此,仅在option1中不同的策略将出现在相同的x位置,但可能是不同的y位置(然后将这两个选项与我所避免的某些统计指标进行比较&#39但是还没决定,但是那个位置更远了。

所以,例如,如果我有:

Overall_Name              | option1 | option2 | option3  | option 4 | option5 | value
data.aaa.aaa.aaa.aaa.aaa    aaa       aaa       aaa        aaa        aaa       .93
data.bbb.aaa.aaa.aaa.aaa    bbb       aaa       aaa        aaa        aaa       .85

我希望x轴的aaa.aaa.aaa.aaa位置有一个点(彩色a)表示.93,另一个点(彩色b)表示.85。

简化示例代码:

  dataset <- data.frame(matrix(ncol=5, nrow=0))
  names(dataset) <- c("name", "opt1","opt2","opt3", "mnr")
  name <- "name1"
  opt1 <- "aaa"
  opt2 <- "aaa"
  opt3 <- "aaa"
  val <- .95
  dataset <- rbind(dataset, data.frame(name, opt1, opt2, opt3, val))
  name <- "name1"
  opt1 <- "bbb"
  opt2 <- "aaa"
  opt3 <- "aaa"
  val <- .85
  dataset <- rbind(dataset, data.frame(name, opt1, opt2, opt3, val))
  name <- "name1"
  opt1 <- "aaa"
  opt2 <- "bbb"
  opt3 <- "aaa"
  val <- .97
  dataset <- rbind(dataset, data.frame(name, opt1, opt2, opt3, val))
  name <- "name1"
  opt1 <- "bbb"
  opt2 <- "bbb"
  opt3 <- "aaa"
  val <- .87
  dataset <- rbind(dataset, data.frame(name, opt1, opt2, opt3, val))

然后一些命令将产生两行,来自&#34; aaa.aaa&#34; to&#34; bbb.aaa&#34;,一个值为[.95,。97],另一个值为[.85,.87],第一行称为&#34; aaa&#34;和第二个&#34; bbb&#34;。

1 个答案:

答案 0 :(得分:1)

你看过分面吗?也许这会引发一些想法。

# for a plot of opt2, create an interaction of opt1 and opt3
dat <- dataset
dat$opt1.opt3 <- with(dat, interaction(opt1, opt3))

左侧的面板适用于opt2 = aaa,右侧的面板适用于opt2 = bbb。 x轴上的每个刻度都是唯一的opt1.opt3组合。颜色代表opt1.opt3

p <- ggplot(dat, aes(x = opt1.opt3, y = val, color = opt1.opt3)) +
     geom_point() + facet_wrap(~ opt2)
p

enter image description here