【问题标题】:Error message with the function melt使用功能 melt 的错误消息
【发布时间】:2017-06-06 11:17:35
【问题描述】:

我是 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 与 melt 作为函数。这是我的命令行:

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

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

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

霍洛德

【问题讨论】:

    标签: r reshape2


    【解决方案1】:

    试试这个:

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

    如果这个运行,我认为你已经用age_ratings_wide[c(3:146)] 命令删除了你的id.vars

    【讨论】:

    • 谢谢!是的!那是为我跑的。奇怪的是 id.vars 在指定要转换的列时被删除。这是否意味着?我必须始终避免使用 [c(x:x)] 命令?
    • 不,它使用这两列来“透视”表。对于 [c(x:x)] 是的 exaclty :)。如果您没问题,请点击对勾(在左侧);)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    相关资源
    最近更新 更多