একটি .R ফাইলে সমস্ত ফাংশন সংজ্ঞায়িত করুন, তাদের অন্য .R ফাইল থেকে কল করুন। কীভাবে, সম্ভব হলে?


95

Xyz.R বলুন, আমি কীভাবে অন্য ফাইলটিতে abc.R ফাইলে সংজ্ঞায়িত ফাংশনগুলি কল করব?

একটি পরিপূরক প্রশ্ন হ'ল আমি কীভাবে আর প্রম্পট / কমান্ড লাইন থেকে abc.R এ সংজ্ঞায়িত ফাংশনগুলি কল করব?

উত্তর:


141

আপনি source("abc.R")তারপরে কল করতে পারেন source("xyz.R")(ধরে নিবেন যে এই দুটি ফাইলই আপনার বর্তমান কার্যনির্বাহী ডিরেক্টরিতে রয়েছে।

যদি abc.R হয়:

fooABC <- function(x) {
    k <- x+1
    return(k)
}

এবং xyz.R হ'ল:

fooXYZ <- function(x) {
    k <- fooABC(x)+1
    return(k)
}

তাহলে এটি কাজ করবে:

> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
> 

এমনকি চক্রীয় নির্ভরতা থাকলেও এটি কাজ করবে।

উদাহরণস্বরূপ, যদি abc.R হয় এটি:

fooABC <- function(x) {
    k <- barXYZ(x)+1
    return(k)
}

barABC <- function(x){
    k <- x+30
    return(k)
}

এবং xyz.R এটি:

fooXYZ <- function(x) {
    k <- fooABC(x)+1
    return(k)
}

barXYZ <- function(x){
    k <- barABC(x)+20
    return(k)
}

তারপর,

> source("abc.R")
> source("xyz.R")
> fooXYZ(3) 
[1] 55
>

10
একটি উপকারী: আপনার কেবল sourceএকবার ফাইল / ফাংশন করতে হবে। তারপরে এটি আপনার কর্মক্ষেত্রে রয়েছে এবং আপনি এটি যে কোনও সময় ব্যবহার করতে পারেন। আপনি যদি এটি পরিবর্তন করেন তবে আপনাকে এটি পুনরায় উত্স করতে হবে। আপনি কোডটি রূপান্তর করার পরে যদি আপনার ফাংশনগুলি অনেকগুলি পরিবর্তিত হয় তবে সেগুলিকে একটি ফাইলে রাখুন এবং প্রতিবার পুরো জিনিসটি উত্স করুন। আপনার একটি পৃথক ছোট ফাইলও থাকতে পারে যা ১ টি ফাংশনগুলির বৃহত সংগ্রহের উত্স এবং ২. আপনার পরীক্ষার কেস চালায়। আর এ আপনার কাজের প্রবাহকে সাজানোর জন্য প্রচুর উপায় রয়েছে।
ব্রায়ান হ্যানসন

4
উপগ্রহের জন্য ধন্যবাদ, ব্রায়ান। আমি এটিকে 2 টি দৃশ্য হিসাবে দেখিয়েছিলাম যা পদ্ধতিগত ভাষার বেশিরভাগ লোকেরা ভাবতে পারেন। এটি চূড়ান্ত নির্ভরতা যুক্ত করার জন্য ফাইলগুলি সম্পাদনা করা হয়েছিল, যার ক্ষেত্রে তাদের পুনরায় উত্সাহিত করা দরকার (প্রদর্শিত হবে) এবং চক্রগুলি ফাইলগুলির স্যোর্সিংকে প্রভাবিত করে না।
এ_কে

আপনি উভয়, আপনাকে ধন্যবাদ. @ এ_ কে: চক্রীয় নির্ভরতা ইস্যুটি হাইলাইট করার জন্য অনেক ধন্যবাদ আমাকে "উন্নত করা যেতে পারে" আর ডকুমেন্টেশনের মাধ্যমে খননের কয়েক ঘন্টা বাঁচিয়েছেন :)
জি শাহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.