函数melt

时间:2017-06-06 11:17:35

标签: r reshape2

我是R的新手,我真的需要你的帮助。我在这件事上难倒了几天但没有任何线索。我需要将宽数据集转换为长格式。我有63个观察值和146个变量。这意味着我将以9072行结束。

我想要的长数据集应该如下所示:

参与者组项目评级 1 1 1 2 1 1 2 3                    144 等。

这是数据集的结构。

str (age_ratings_wide)
'data.frame':   63 obs. of  146 variables:
 $ participant    : Factor w/ 63 levels "E1","E10","E11",..: 49 50 51 52 53 54 55 56 57 58 ...
 $ group          : Factor w/ 3 levels "1-6","7-13","NS": 3 3 3 3 3 3 3 3 3 3 ...
 $ M1_5_adv_g1    : int  2 4 5 5 4 5 5 5 4 5 ...
 $ M1_17_adv_g2   : int  5 5 5 5 5 5 5 5 5 5 ...

  [list output truncated]

问题是我第一次设法将其转换为我想要的但未能保存。然后它停止了为我工作。我使用RStudio和reshape2作为函数。这是我的命令行:

age_ratings_long <-melt(age_ratings_wide[c(3:146)],id.vars = c("participant","group"),value.name = "ratings",varaible.name="item")
  

错误:数据中找不到id变量:参与者,组

即使我试图缩短要堆叠的列数,我仍然会收到此错误消息。

Kholoud

1 个答案:

答案 0 :(得分:0)

试试这个:

age_ratings_long = melt(age_ratings_wide,id.vars=c("participant","group"))

如果运行,我认为您已使用id.vars命令删除了age_ratings_wide[c(3:146)]