【问题标题】:How to reshape data from long to wide format with multiple conditions?如何在多个条件下将数据从长格式重塑为宽格式?
【发布时间】:2017-08-10 19:07:51
【问题描述】:

我有一个名为“vsample2.csv”的数据表,如下所示:

我需要它在我要创建的新数据表中看起来像这样:

尝试使用 dcast 但似乎不起作用。我不想要一个函数。就一两行。

我需要对数据进行重复测量方差分析。 E & H 是变量级别 1,C 和 IC 是变量级别 2。我需要变量级别 1、2 的显着性值,然后是它们的交互作用。

数据

set.seed(1)
dd <- data.frame(
  subject = paste('Subject', rep(1:4, each = 4)),
  lang = rep(c('H', 'E'), each = 2),
  resp = c('C', 'IC'),
  p = runif(16),
  stringsAsFactors = FALSE
)

【问题讨论】:

  • 创建新变量,即 lang 和 resp 的 interaction,将其用作“时间”变量 -- 使用 id、时间和 pct 进行基本整形
  • 您好,rawr,您能附上一个示例语法吗?我不太擅长语法。谢谢。
  • 向我们展示您对示例的尝试
  • 编辑了问题。

标签: r csv dataframe data.table dcast


【解决方案1】:

如果你只是想重塑数据试试这个:

library(data.table)
set.seed(1)
dd <- data.frame(
  subject = paste('Subject', rep(1:4, each = 4)),
  lang = rep(c('H', 'E'), each = 2),
  resp = c('C', 'IC'),
  p = runif(16),
  stringsAsFactors = FALSE
)
setDT(dd)
out <- dcast(dd, formula = subject~lang+resp)

产生:

> out
     subject       E_C      E_IC       H_C       H_IC
1: Subject 1 0.5728534 0.9082078 0.2655087 0.37212390
2: Subject 2 0.9446753 0.6607978 0.2016819 0.89838968
3: Subject 3 0.2059746 0.1765568 0.6291140 0.06178627
4: Subject 4 0.7698414 0.4976992 0.6870228 0.38410372

【讨论】:

  • 您好 Kristoffer,感谢您的回复。我实际上需要做一个双向重复测量方差分析。 E & H 为自变量 1,C & IC 为自变量 2。我只附上了 4 个科目的样本。实际上还有一百多个。
猜你喜欢
  • 2022-01-11
相关资源
最近更新 更多