【问题标题】:Comparing multiple data frames比较多个数据帧
【发布时间】:2012-09-16 01:26:20
【问题描述】:

我需要一些数据分析方面的帮助。
我确实有两个数据集(之前和之后),我想看看它们之间的差异有多大。

之前

11330    STAT1
2721    STAT2
52438    STAT3
6124    SUZY

之后

17401    STAT1
3462    STAT2
0    STAT3
72    SUZY

尝试将它们与tapply(before$V1, before$V2, FUN=mean) 分组。
但是当我试图绘制它时,在 x 轴上不是得到组名而是得到数字。 如何绘制这样的挖掘数据(Y 轴上的频率和 X 轴上的组名)?

还想问在 R 中比较这些数据集的正确命令是什么,因为我愿意找出它们之间的区别?


已编辑

输入($V1 之前)
c(11330L、2721L、52438L、6124L)

输入($V2 之前)
结构(1:4, .Label = c("STAT1", "STAT2", "STAT3","SUZY"),class= "factor")

【问题讨论】:

  • 如何通过将组名放在 x 轴上来比较这些数据集?每个都有两个值。
  • 我愿意通过目测来看看两个情节之间的区别,但我明白有更体面的方法来做到这一点。
  • 这是什么“数据集”?我从数据配对的名称中得出它(之前的 STAT1 与之后的 STAT1 匹配?)您能否使用 dput(before1) 和 dput(before2) 发布您的 before1 和 before2 数据集的样本?

标签: r dataset compare


【解决方案1】:

这里有几个想法。

这就是我认为您的数据的样子?

before <- data.frame(val=c(11330,2721,52438,6124),
                     lab=c("STAT1","STAT2","STAT3","SUZY"))
after <- data.frame(val=c(17401,3462,0,72),
                     lab=c("STAT1","STAT2","STAT3","SUZY"))

使用period 变量将它们组合成一个数据框:

combined <- rbind(data.frame(before,period="before"),
      data.frame(after,period="after"))

重新格式化为矩阵并使用(base R)dotchart 绘图:

library(reshape2)
m <- acast(combined,lab~period,value.var="val")
dotchart(m)

使用ggplot 绘图:

library(ggplot2)
qplot(lab,val,colour=period,data=combined)

【讨论】:

  • 感谢您的帮助!它解决了我的绘图问题,但我也想问是否可以将这两组(之前/之后)分开以获得至少多少次彼此不同。
  • 你的意思是计算它们之间的差异吗?如果是这样,after$val-before$val 有什么问题? (对于更大的集合,您可能需要注意元素的顺序相同,但是对于您提供给我们的数据,这应该没问题...?)否则,请编辑您的问题以提供更精确的问题(即,向我们展示这个特定迷你示例所需的答案是什么)
猜你喜欢
  • 2021-12-14
  • 2019-07-21
  • 2022-11-10
  • 2023-02-16
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多