কমা দ্বারা পৃথক করা ভেক্টর তৈরি করা হচ্ছে


89

আমার কাছে একটি সংখ্যক ভেক্টর রয়েছে, যা আমি একটি অক্ষর ভেক্টরে পরিণত করার চেষ্টা করছি যেখানে প্রতিটি উপাদান কমা দ্বারা পৃথক করা হয়।

> one = c(1:5)
> paste(as.character(one), collapse=", ")
[1] "1, 2, 3, 4, 5"
> paste(as.character(one), sep="' '", collapse=", ")
[1] "1, 2, 3, 4, 5"

তবে, আমি আউটপুটটি দেখতে দেখতে চাই:

"1", "2", "3", "4", "5" 

আমি কি পেস্ট ফাংশন থেকে কিছু পরামিতি মিস করছি? সাহায্য !?

উত্তর:


91

shQuoteসম্ভবত এটি করার সর্বোত্তম উপায়। বিশেষত, এটি আপনার পছন্দসই আউটপুট দেয়:

cat(paste(shQuote(one, type="cmd"), collapse=", "))

যদি একক উদ্ধৃতি ভাল হয়, আপনি ব্যবহার করতে পারেন:

paste(shQuote(one), collapse=", ")

type="cmd"প্রকৃতপক্ষে পালিয়ে যাওয়া উদ্ধৃতি সরবরাহ করে যা বেশিরভাগ প্রেক্ষাপটের জন্য আসলে কার্যকর, তবে আপনি যদি সত্যই এটি অনির্ধারিত উদ্ধৃতি দিয়ে কোথাও প্রদর্শন করতে চান তবে তা catসরবরাহ করে।


4
paste(shQuote(one), collapse=", ")দেয় [1] "\"1\", \"2\", \"3\", \"4\", \"5\"", একক উদ্ধৃতি আবদ্ধ বৈকল্পিক না।
vasili111

44

আপনি বলছেন যে আপনি সেই আউটপুট সহ একটি চরিত্রের ভেক্টর চান, তবে অন্যরা যারা এই প্রশ্নটি খুঁজে পান তারা পরিবর্তে এই ফাংশনগুলির মধ্যে একটি সন্ধান করতে পারেন:

প্রথমে, আর-তে ইনপুট দেওয়ার জন্য আউটপুট প্রস্তুত হওয়ার একটি উপায়; যে হবে dput:

> dput(as.character(one))
c("1", "2", "3", "4", "5")

দ্বিতীয়ত, একটি সিএসভি ফাইল আউটপুট করার একটি উপায়, যা হতে পারে write.csvবা write.table। এই ফাংশনগুলি fileসরাসরি কোনও ফাইলে আউটপুট করতে এখানে ব্যবহৃত হয় না, একটি পরামিতি নেয় ।

> write.table(matrix(as.character(one),nrow=1), sep=",",
              row.names=FALSE, col.names=FALSE)
"1","2","3","4","5"

> write.csv(matrix(as.character(one),nrow=1),row.names=FALSE)
"V1","V2","V3","V4","V5"
"1","2","3","4","5"

14

ধরে নিই যে আপনি নিজের আউটপুট একটি চরিত্রের স্ট্রিংয়ে চান (অক্ষরের ভেক্টরের বিপরীতে) আপনি চেষ্টা করতে পারেন:

paste("'",as.character(one),"'",collapse=", ",sep="")

এটি আপনাকে দ্বিগুণ উদ্ধৃতিগুলির চেয়ে সংখ্যাগুলির চারপাশে একক উদ্ধৃতি দেয়, তবে এটি মূলত যা আপনি চান বলে মনে হয়।

এবং আপনি ডাবল উদ্ধৃতি পেতে সর্বদা পালাতে পারেন:

rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="")
cat(rs)

এটি ডাবল উক্তি দিয়ে আপনি যা চান তা মুদ্রণ করা উচিত।


4

এছাড়াও shQuote, ফাংশনগুলি দেখুন sQuoteএবং dQuoteযথাক্রমে একক এবং ডাবল উদ্ধৃতিতে পাঠ্য আবরণ করুন। আপনি options(useFancyQuotes=FALSE)সরল (একমুখী) এএসসিআইআই কোটস সেট করতেও চাইবেন ।



2

আপনি যদি pasteফাংশনটি ব্যবহার করতে চান তবে নূহের উত্তরে যুক্ত করতে :

paste(shQuote(one, type="sh"), collapse=", ")

আপনাকে দেওয়া উচিত:

[1] '1','2','3','4','5'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.