سؤال

هل هناك وسيلة لديك جهاز R (أن حاشية تكون كبيرة) كتابة الإخراج إلى متغير بدلا من الملف؟

وعلى سبيل المثال أنا أعرف هذا:

postscript(file="|cat")
plot(1:10)
dev.off()

وسوف ترسل نص حاشية لSTDOUT. كيف يمكنني الحصول على هذا النص إلى متغير داخل R؟

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

المحلول

ولقد كان النجاح في الحصول على ثنائي من مؤامرة في متغير R كسلسلة. وأن حصل بعض النفقات القراءة / الكتابة. في المقتطف التالي، R يوفر المؤامرة كملف مؤقت ويقرأ مرة أخرى.

## create a plot
x <- rnorm(100,0,1)
hist(x, col="light blue")

## save plot as temp file
png(filename="temp.png", width=500, height=500)
print(p)
dev.off()

## read temp file as a binary string
plot_binary <- paste(readBin("temp.png", what="raw", n=1e6), collapse="")

وربما يكون ذلك مفيدا لك.

نصائح أخرى

وحاشية يأخذ حجة الأوامر، وبالتالي حاشية (ملف = ""، والقيادة = "| القط")

وماذا على وجه الأرض تريد أن تفعل ذلك؟ R ليس نظام جيد جدا لمعالجة ملفات بوستسكريبت. إذا أي شيء آخر، يمكنك استخدام tempfile () لإرسال الصورة إلى ملف، والتي يمكنك ثم قرأ في استخدام وظائف الملفات القياسية. إذا كنت تريد أن تكون نزوة، هل يمكن ربما استخدام FIFO () الأنابيب، ولكن أشك في أنها سوف تكون أسرع بكثير. ولكن أظن أنك سوف تكون أفضل حالا مع اتباع نهج مختلف.

ويجب أن تكون قادرا على استخدام textConnection على النحو التالي.

tc <- textConnection("string", "w")

postscript(tc)
plot(1:10)
dev.off()

ولكن يبقى string فارغة - ربما خلل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top