أحصل على خطأ عند محاولة استخدام Melt () على إطار بيانات يحتوي على تواريخ

StackOverflow https://stackoverflow.com/questions/2831319

  •  26-09-2019
  •  | 
  •  

سؤال

أود إذابة dataframe بحيث يكون لديّ في عمود واحد وفي ثانية ، لدي اسم مستخدم كمتغير وأخيراً القيمة.

أحصل على هذا الخطأ:

خطأ في As.Date.numeric (القيمة): يجب توفير "الأصل"

وبينما أفهم الخطأ ، لست متأكدًا تمامًا من كيفية الالتفاف عليه.

عينة صغيرة من البيانات هي:

structure(list(created_at = structure(c(14007, 14008, 14009, 
14010, 14011, 14012), class = "Date"), benjamin = c(16, 0, 0, 
0, 0, 0), byron = c(0, 0, 0, 0, 0, 0), cameronc = c(0, 0, 0, 
0, 0, 0), daniel = c(0, 0, 0, 0, 0, 0), djdiaz = c(0, 0, 0, 0, 
0, 0), gene = c(16, 77, 64, 38, 72, 36), joel = c(0, 0, 0, 0, 
0, 2), kerem = c(0, 0, 0, 0, 0, 0), sophia = c(0, 0, 0, 0, 0, 
0), SuperMoonMan = c(0, 0, 0, 0, 0, 0)), .Names = c("created_at", 
"benjamin", "byron", "cameronc", "daniel", "djdiaz", "gene", 
"joel", "kerem", "sophia", "SuperMoonMan"), row.names = c(NA, 
6L), class = c("cast_df", "data.frame"))

شكرا لمساعدتك.

هل كانت مفيدة؟

المحلول

حاول تحويل created_at متغير في ناقل الأحرف. melt كما لا يبدو أنه يحب cast_df الفصل ، لكنني نجحت من خلال إعادة ضبط الفصل إلى فقط data.frame. مثل ذلك:

df <- as.data.frame(df)
df$created_at <- as.character(df$created_at)
library(reshape)
melt(df)

نصائح أخرى

لقد حدث خطأ في ذلك rbind مستعمل في melt, ، وهو نتيجة للبيانات الخاطئة للذوبان. لا أعرف كيف تنشئ cast_df data.frame, ، لكنه مفقود سمات (idvars و rdimnames) والتي تتطلبها melt.cast_df.

هذا هو السبب Wkmor1 يعمل الحل ، melt.data.frame لا تحتاج إلى هذه الحجج. ودون تحويل Date ل character يمكن القيام به على النحو التالي:

df <- as.data.frame(df)
melt(df, id="created_at")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top