كيفية إرجاع البيانات. إطار باسم معين من وظيفة؟

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

  •  27-09-2019
  •  | 
  •  

سؤال

افترض أن لدي وظيفة تقرأ البيانات من جدول MySQL ، وتتعامل معها وإرجاع بعض البيانات. لاحظ أن الوظيفة هي مجرد مثال لا تهم وظيفته نفسها ... على سبيل المثال:

addRowSd <- function(table,con,pattern="^Variable") {

dframe <- dbReadTable(con,table)
cn <- colnames(dframe)
qs <- subset(x, x  %in% grep(pattern, x, value=TRUE))
dframe$qsd <- sd(t(dframe[,c(qs)])) 

return(dframe)
}

mydf$sd <- addRowSd(...)

انتهى بي الأمر مع data.frame يسمى mydf. الآن أود أن أفعل ذلك إلى ناقل الأحرف من أسماء جدول SQL وتسمية أسماء البيانات التي تم إرجاعها في المقابل. إذا استخدمت للتو

x=lapply(MySQLtablenames,addRowSd,con)

سأحصل على بعض القائمة تسمى x. بالطبع يمكن أن أقوم بإلغاء تسمية كل شيء بالطريقة التي أحب ، لكن سؤالي هو:

كيف يمكنني جعل lapply (أو وظيفة أخرى قابلة للمقارنة) إرجاع إطارات بيانات واحدة متعددة أو على الأقل قائمة تحتوي على بعض الأسماء المستمدة من متجه الشخصيات "MySqlTablenames"؟

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

المحلول

فقط وجدت إجابة بمفردي:

assign("somename",dframe,envir = .GlobalEnv)

نصائح أخرى

إذا قمت بتزويد Sapply متجهًا بالأحرف ، فسوف يقوم بتسمية العناصر الموجودة في القائمة التي تم إرجاعها بواسطة ناقل الأحرف المرفق (use.names الافتراضي إلى True) ... أود أيضًا أن أستخدم Simplify = fals الحصول على نتائج غير متوقعة

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top