"منخفض خارج الحدود" عند تشغيل تطبيق() في TERR ، ولكن يعمل في سهل R

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

  •  21-12-2019
  •  | 
  •  

سؤال

عندما أحاول تشغيل الجزء التالي من التعليمات البرمجية في Spotfire المهنية باعتبارها "R النصي - تيبكو المؤسسة Runtime for R":

mydata_broken <- structure(
  list(
    Var1 = list(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391), 
    Var2 = list(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391)), 
  row.names = c("1", "2", "3", "4"), 
  class = "data.frame", 
  out.attrs = list(dim = c(2L, 2L), 
                   dimnames = list(
                     Var1 = c("Var1=3.99083333270391", "Var1=3.99083333270391"), 
                     Var2 = c("Var2=3.99083333270391", "Var2=3.99083333270391")
                     )
                   )
  )

mydata_ok <- structure(
  list(
    Var1 = list(3.99083333270391), 
    Var2 = list(3.99083333270391)), 
  row.names = "1", 
  class = "data.frame", 
  out.attrs = list(dim = c(1L, 1L), 
                   dimnames = list(
                     Var1 = "Var1=3.99083333270391", 
                     Var2 = "Var2=3.99083333270391")
                   )
  )

out <- apply(mydata_broken, 1, function(y) mean(as.numeric(y)))

أحصل على رسالة الخطأ التالية:

تيبكو المؤسسة Runtime for R إرجاع خطأ:'خطأ في التوسع.أسماء(x) :منخفض خارج حدود'.في Spotfire.Dxp.البيانات.DataFunctions.والمنفذين.LocalFunctionClient.OnExecuting(FunctionClient funcClient)

(بقية تتبع المكدس محذوفة)

ولكن نفس القانون يعمل لا تشوبه شائبة في سهل R.لو كنت محل mydata_broken مع mydata_ok في الدعوة إلى apply(), كل شيء يعمل كما هو متوقع (سواء في الحزن و عادي R).

الأشياء التي كنت قد حاولت حتى الآن:

نسخة & معلومات التكوين

  • Spotfire 5.5.0, بناء النسخة 5.5.0.31 ، وبناء التاريخ:22.05.2013
  • R الإصدار 3.0.2, 64bit (2013-09-25)
  • ويندوز 7 64bit

لذا سؤالي هو:هل انا غبية الخطأ هنا ؟ أو هو هذا الخلل في Spotfire R وقت التشغيل?

التحديث أود فتح هذا السؤال لأن لدي مقومات الحل من Spotfire الدعم و أود أن أضيف أنها إجابة.

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

المحلول

وهنا باختصار ملخص الرد علي من Spotfire الدعم:

  • هو في الواقع خطأ في TERR (على ما يبدو ، TERR ليست قادرة على قراءة list() هيكل بشكل صحيح ، مما تسبب خطأ في أبعاد المصفوفة كان من المفترض أن خلق);وهم يعملون حاليا على تحديد ذلك
  • كحل ، يمكنك استخدام c() بدلا من list() في تعريف البيانات

تعديل تعريف البيانات التي تعمل في TERR

mydata_working <- structure(
    list(
      Var1 = c(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391), 
      Var2 = c(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391)), 
    row.names = c("1", "2", "3", "4"), 
    class = "data.frame", 
    out.attrs = list(dim = c(2L, 2L), 
                     dimnames = list(
                       Var1 = c("Var1=3.99083333270391", "Var1=3.99083333270391"), 
                       Var2 = c("Var2=3.99083333270391", "Var2=3.99083333270391")
                       )
                     )
    )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top