التخفيف من تهيج الخط المائل العكسي في R لنظام التشغيل Windows

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

  •  05-07-2019
  •  | 
  •  

سؤال

في وقت مبكر من حياتي R اكتشفت ألم R والنوافذ الموجودة على صفحات مختلفة عندما يتعلق الأمر بالفاصل بين الدلائل والأدلة الفرعية.على الرغم من معرفتي بالمشكلة، ما زلت أشعر بالألم بسبب الاضطرار يدويًا إلى وضع شرطة مائلة عكسية أمام كل الخطوط المائلة العكسية أو استبدالها جميعًا بخطوط مائلة للأمام.

أحب نسخ اسم مسار أو اسم ملف كامل باستخدام أي من التطبيقات العديدة التي أقوم بتشغيلها على جهاز الكمبيوتر الخاص بي (على سبيل المثال.XYPlorer، Everything by voidtools) ثم لصقه في Tinn-R.هل يمكنني بأي حال من الأحوال أتمتة المهمة التي أقوم بها يدويًا حاليًا.

  • هل هناك إعداد في Tinn-R؟
  • هل هناك إعداد في R؟
  • هل يوجد برنامج نصي لمفتاح التشغيل التلقائي يمكنه القيام بذلك بشكل افتراضي؟

خلفية لأولئك الذين لا يعرفون ما أتحدث عنه

نقلاً عن الأسئلة الشائعة لـ R لنظام التشغيل Windows، إصدار R-2.9.2، B.د.ريبلي و د.ج.مردوخ

يجب أن تتضاعف backslashes في سلاسل أحرف r ، لذلك على سبيل المثال يحتاج المرء إلى `" d: r-2.9.2 library xgobi scripts xgobi.bat ".يمكنك أن تجعل الحياة أسهل لنفسك باستخدام مائلات الأمام كفواصل مسار:إنهم يعملون تحت نظام Windows

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

المحلول

كتبت أ مفتاح التشغيل التلقائي البرنامج النصي الذي يتم تشغيله عن طريق كتابة "rfil" - بدون الفواصل المقلوبة.

:O:rfil:: ;replaces backslashes with forward slashes in a file name that is stored on the clipboard
StringReplace,clipboard,clipboard,\,/,All
send %clipboard%
return

إذا كان بإمكان أي شخص أن يخبرني بطريقة أسرع من استخدام أمر الإرسال سأكون ممتنًا له.لدي برنامج نصي لمفتاح التشغيل التلقائي يعمل طوال الوقت على جميع أجهزة الكمبيوتر الخاصة بي، لذلك لم أضطر إلى تنزيل برنامج جديد لتشغيل هذا البرنامج النصي.لقد أضفته ببساطة إلى ملف البرنامج النصي الافتراضي الخاص بي.

سأكون سعيدًا بشرح ما فعلته إذا كنت تريد مني ذلك.

نصائح أخرى

ClipPath يضيف خيارات قائمة النقر بزر الماوس الأيمن لاختيار نوع الشرطة المائلة التي تريد لصقها.

عبر إنجاز علم الوراثة, ، والذي يبدو أنه قد يكون مصدرًا مفيدًا لمستخدمي R بشكل عام.

لقد قمت بتعديل رمز مفتاح التشغيل التلقائي التالي الذي تمت مشاركته لاستبدال جميع الخطوط المائلة العكسية بخطوط مائلة للأمام كلما قمت بلصق أي شيء في RStudio.هناك إيجابيات وسلبيات لهذا النهج.

الايجابيات: ليس عليك أن تفكر في الأمر.سيتم تشغيل الكود فقط إذا كانت النافذة النشطة هي RStudio.

سلبيات: يتم استدعاء الكود في كل مرة تقوم فيها بلصق شيء ما في R.في كل مرة يحاول العثور على خطوط مائلة عكسية واستبدالها بخطوط مائلة للأمام.

GroupAdd, R, RStudio

;replaces backslashes with forward slashes in a file name that is stored on the clipboard
#IfWinActive ahk_group R
   ^v::
      StringReplace,clipboard,clipboard,\,/,All
      send %clipboard%
   return
#IfWinActive

أستخدم البحث والاستبدال، لكن بالطبع، الأمر ليس تلقائيًا تمامًا وعليك الحرص على عدم استبدال " " أو " ".

ليست بالضبط الإجابة التي تبحث عنها ولكن R لديها وظائف البرمجة النصية الخاصة بها والتي أستخدمها غالبًا:

list.files(,full=TRUE) [إرجاع المسار الكامل مع الفواصل المناسبة]

file.path() [ينضم مع فاصل خاص بنظام التشغيل]

وما إلى ذلك وهلم جرا...

يمكنك إنشاء وظيفة مجمعة حول جميع أسماء المسارات:

> replace.slash <- function(path.name) gsub("\\\\","/",path.name)
> path.name <- "c:\\tmp\\"
> replace.slash(path.name)
[1] "c:/tmp/"

[يحرر]: شكرا هادلي.لقد صححت الخطأ هناك.

بالمناسبة، لقد وجدت هذا جدا مناقشة مفيدة حول هذا الموضوع.

هذا هو AutoIt الكود الذي يفعل نفس الشيء (يستبدل \ مع /).

Local $text1 = ClipGet()
$text2=StringReplace($text1,"\","/")
ClipPut($text2)

لماذا لا تنشئ وظيفة تتحقق من نظام التشغيل وترجع فاصل الملفات المناسب (حل جافا على ما أعتقد)؟

file_sep <- function(){
ifelse(.Platform$OS.type == "unix", "/", "//")
}
file_sep()

يمكنك اختيار اسم أقصر إذا أردت.العيب الكبير هنا هو أنه يتعين عليك لصق مسارات الملفات معًا، لكن الأمر لا يزال يستحق العناء على المدى الطويل إذا كنت تعمل على مشاريع كبيرة.

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