উইন্ডোজ ব্যবহার করে আর-এ ফাইল পাথের সমস্যাগুলি ("অক্ষরের স্ট্রিংয়ে হেক্স্স সংখ্যা" ত্রুটি)


89

আমি উইন্ডোজে আর চালিত করি, এবং ডেস্কটপে একটি সিএসভি ফাইল রাখি। আমি এটি নিম্নরূপে লোড করছি,

x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)

তবে আর নীচের ত্রুটি বার্তা দেয়

ত্রুটি: "সি: \ ইউ" অক্ষর স্ট্রিংয়ে হেক্স সংখ্যা ছাড়াই ব্যবহৃত '\ U'

সুতরাং এই ফাইলটি লোড করার সঠিক উপায় কি। আমি ভিস্তা ব্যবহার করছি

উত্তর:


134

\সঙ্গে সব প্রতিস্থাপন \\

এটি এই ক্ষেত্রে পরবর্তী চরিত্রটি পালানোর চেষ্টা করছে Uযাতে \একটি sertোকানোর জন্য আপনাকে একটি পালানো .োকানো দরকার \যা এটি\\


4
এটি সত্য simply সহ replace প্রতিস্থাপন করুন এবং স্ক্রিপ্টটি সফলভাবে চলে। ধন্যবাদ স্মিত !!
রাজীব কুমার বার্নওয়াল

এটি একটি ভাল উত্তর। সি এর মতো উইন্ডোজ থেকে পাথ: / ব্যবহারকারী / ... কাজ করে এবং \\ এর চেয়ে কম বিভ্রান্তিকর \\ আপনি যখন শেলটির মতো শেল () কল করেন ("সিডি সি: \\ ব্যবহারকারীগণ \\ && কিছু করেন") করেন তখনই আপনি সেই পথটি \ এর সাথে থাকতে চাইবেন এমন একমাত্র পরিস্থিতি
মন্ডুইজ

27

স্মিটেক ইতিমধ্যে সঠিক উত্তর হিসাবে দয়া করে এই প্রতিক্রিয়াটিকে সঠিক হিসাবে চিহ্নিত করবেন না। আমি আমার সুবিধামত ফাংশনটি অন্তর্ভুক্ত করছি যা আমি আমার। প্রথম লাইব্রেরি যা উইন্ডোজ পাথকে রূপান্তর করে তোলে যেটি আর-এ কাজ করে (সচা ইপস্ক্যাম্প দ্বারা বর্ণিত পদ্ধতিগুলি)। আপনার ক্লিপবোর্ডের সরল পথটি অনুলিপি করুন (সিটিআরএল + সি) এবং তারপরে ফাংশনটি চালান pathPrep()। তর্ক করার দরকার নেই। পাথটি আপনার কনসোলে সঠিকভাবে মুদ্রিত হয়েছে এবং কোনও স্ক্রিপ্টে সহজেই আটকানোর জন্য আপনার ক্লিপবোর্ডে লেখা আছে। আশা করি এটি সহায়ক।

pathPrep <- function(path = "clipboard") {
    y <- if (path == "clipboard") {
        readClipboard()
    } else {
        cat("Please enter the path:\n\n")
        readline()
    }
    x <- chartr("\\", "/", y)
    writeClipboard(x)
    return(x)
}

4
আমি এটি লিখতে চলেছিলাম এবং আমি খুশি আমি প্রথম পরীক্ষা করে দেখেছি। অসংখ্য ধন্যবাদ. আমি সত্যিই আশ্চর্য হয়েছি যে এটি সেখানকার আরও জনপ্রিয় প্যাকেজগুলির মধ্যে লিক হয় নি (যদি না আমি কেবল এটি মিস করি)। আমি এটি আমার স্ক্রিপ্টে ব্যবহার করতে যাচ্ছি তাই আমি সম্পন্ন হওয়ার পরে সামান্য প্রকরণ পোস্ট করব।
রব

4
এটি এখন প্রতিবেদন বিকাশের প্যাকেজে রয়েছে এবং শেষ পর্যন্ত CRAN এ ধাক্কা দেওয়া হবে। প্রতিবেদন ডেভ প্যাকেজটিতে WP(উইন্ডোজ পাথ) দেখুন ।
টাইলার রিঙ্কার

11

সমাধান

এটা চেষ্টা কর: x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)

ব্যাখ্যা

আর সাধারণ উইন্ডোজ পাথগুলি সঠিকভাবে বুঝতে সক্ষম হয় না কারণ "\"এর বিশেষ অর্থ রয়েছে - এটি নীচের অক্ষরগুলিকে বিশেষ অর্থ দেওয়ার \nজন্য ( পালটে অক্ষর হিসাবে ব্যবহৃত হয়) ( নতুন লাইনের \tজন্য, ট্যাবটির \rজন্য, গাড়ীর ফেরতের জন্য, ... এখানে দেখুন )।

কারণ আর \Uএটি যে অনুক্রমটি অভিযোগ করে তা আর জানে না । এর বিশেষ অর্থ থেকে এড়াতে কেবল এর "\"সাথে প্রতিস্থাপন করুন "/"বা অতিরিক্ত ব্যবহার করুন এবং সবকিছু মসৃণভাবে কাজ করে।"\""\"

বিকল্প

উইন্ডোজগুলিতে, আমি মনে করি যে আর এর উইন্ডোজ নির্দিষ্ট পাথের সাথে আপনার কর্মপ্রবাহকে উন্নত করার জন্য সবচেয়ে ভাল কাজটি হ'ল উদ্বোধনী অটোহোটকি যা কাস্টম হটকিগুলির জন্য অনুমতি দেয়:

  • একটি hotkey সংজ্ঞায়িত, যেমন Cntr- Shift-V
  • এটিকে এমন একটি প্রক্রিয়া নির্ধারণ করে যা আপনার ক্লিপবোর্ডের মধ্যে স্ল্যাচগুলির সাথে ব্যাকস্ল্যাশগুলি প্রতিস্থাপন করে ...
  • আপনি যখন আর কোনও রাস্তা পেস্ট করে অনুলিপি করতে চান তখন আপনি ব্যবহার করতে পারেন Cntr- Shift- Vপরিবর্তে Cntr-V
  • এট-ভয়েলা

অটোহটকি কোড স্নিপেট (হোমপেজে লিঙ্ক)

^+v::
StringReplace, clipboard, clipboard, \, /, All 
SendInput, %clipboard% 

5

আমার সমাধানটি একটি আরস্টুডিও স্নিপেটকে নীচে সংজ্ঞায়িত করতে হবে :

snippet pp
    "`r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())`"

এই স্নিপেট ব্যাকস্ল্যাশগুলিকে \ডাবল ব্যাকস্ল্যাশে রূপান্তর করে \\। আপনি যদি ব্যাকস্লেশগুলি ফরোয়ার্ড স্ল্যাশে রূপান্তর করতে পছন্দ করেন তবে নীচের সংস্করণটি কাজ করবে /

snippet pp
    "`r gsub("\\\\", "/", readClipboard())`"

আপনার পছন্দের স্নিপেটটি একবার সংজ্ঞায়িত হয়ে গেলে, p- p- TAB- ENTER(এটি পিপি এবং তারপরে ট্যাব কী এবং তারপরে টাইপ করে ক্লিপবোর্ড থেকে একটি পাথ আটকে দিন) এবং পথটি বন্ধুত্বপূর্ণ ডিলিমিটারগুলির সাথে যাদুতে inোকানো হবে।


আমি জানতাম না যে আর স্টুডিওতে স্নিপেটের অস্তিত্ব রয়েছে যতক্ষণ না আমি এটি দেখেছি। এটা সত্যিই দারুন.
ডেভিড


2

ফরোয়ার্ড স্ল্যাশের সাথে ব্যাকস্ল্যাশ প্রতিস্থাপন করা উইন্ডোতে আমার জন্য কাজ করেছিল।


1

টেক্সট ফাইলের ক্ষেত্রে এটি মোকাবেলা করার সর্বোত্তম উপায় যা পাঠ্য খনির (স্পিচ, নিউজলেটার ইত্যাদি) ডেটা ধারণ করে তা "\" "/" এর সাথে প্রতিস্থাপন করা।

উদাহরণ:

file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))

1

আমি জানি এটি সত্যিই পুরানো, তবে আপনি যদি অনুলিপি করে এবং পেস্ট করে থাকেন তবে আপনি কেবল ব্যবহার করতে পারেন:

read.csv(readClipboard())

রিডক্লিপবোর্ড () আপনার জন্য ব্যাক-স্ল্যাশগুলি এড়িয়ে যায়। আপনার কপিটিতে ".csv" অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করে রাখুন, সম্ভবত এটি সহ:

read.csv(paste0(readClipboard(),'.csv'))

এবং যদি আপনি সত্যিই আপনার টাইপিংকে ছোট করতে চান তবে আপনি কিছু ফাংশন ব্যবহার করতে পারেন:

setWD <- function(){
  setwd(readClipboard())
}


readCSV <- function(){
  return(readr::read_csv(paste0(readClipboard(),'.csv')))
} 

#copy directory path
setWD()

#copy file name
df <- readCSV()

0

আমি মনে করি যে আর স্ট্রিংয়ের মধ্যে একটি পালানোর চরিত্র হিসাবে আর 'reading' পড়ছে। উদাহরণস্বরূপ \ n স্ট্রিংয়ের মধ্যে একটি নতুন লাইন তৈরি করে, \ t স্ট্রিংয়ের মধ্যে একটি নতুন ট্যাব তৈরি করে।

'\' কাজ করবে কারণ আর এটিকে একটি সাধারণ ব্যাকস্ল্যাশ হিসাবে স্বীকৃতি দেবে।


0

readClipboard()সরাসরি কাজ করে। আপনার ক্লিপবোর্ডে পাথটি অনুলিপি করুন

C:\Users\surfcat\Desktop\2006_dissimilarity.csv

তারপর

readClipboard()

হিসাবে প্রদর্শিত হয়

[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"

-3

অজগর ব্যবহার করা সহজ উপায়। পাইথন টার্মিনাল টাইপ

r "C: \ ব্যবহারকারীরা f surfcat \ ডেস্কটপ \ 2006_dissiversityity.csv" এবং আপনি ফিরে পাবেন 'সি: \ ব্যবহারকারীগণ \ সারফ্যাক্যাট \ ডেস্কটপ \ 2006_dissiversityity.csv'

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