আর এর একটি স্ট্রিং থেকে সমস্ত বিশেষ অক্ষর মুছবেন?


117

আর এর স্ট্রিং থেকে সমস্ত বিশেষ চরিত্রগুলি কীভাবে সরিয়ে ফেলা হবে এবং স্পেস দিয়ে তাদের প্রতিস্থাপন করবেন?

অপসারণের জন্য কয়েকটি বিশেষ অক্ষর হ'ল: ~!@#$%^&*(){}_+:"<>?,./;'[]-=

আমি প্যাটার্ন regexদিয়ে চেষ্টা করেছি [:punct:]তবে এটি কেবল বিরাম চিহ্নগুলি সরিয়ে দেয়।

প্রশ্ন 2: এবং বিদেশী ভাষা থেকে অক্ষরগুলি কীভাবে সরিয়ে নেওয়া যায়: â í ü Â á ą ę ś ć ?

উত্তরঃ ব্যবহারের [^[:alnum:]]মুছে ফেলার জন্য ~!@#$%^&*(){}_+:"<>?,./;'[]-=এবং ব্যবহার [^a-zA-Z0-9]এছাড়াও মুছে ফেলার জন্য â í ü Â á ą ę ś ćregexবা regexprফাংশন।


4
"বিশেষ চরিত্র" এর সংজ্ঞা কী?
কোহসকে

আমার নিজস্ব সংজ্ঞাটি এমন প্রতিটি চরিত্র হবে যা ইউনিকোডে নয় ;-)) তবে আমার ধারণা অন্যান্য অনেক লোক এতে দ্বিমত পোষণ করবে।
জো

হয়তো একবার subবা gsubফাংশন একবার দেখুন ।
পল হিমস্ট্র্রা

5
regex [: punct:] কাজ অর্ধেক করতে যাচ্ছেন বা মেগাই সব
কিউবিক

উত্তর:


196

আপনি ব্যবহার করতে হবে রেগুলার এক্সপ্রেশনের অবাঞ্ছিত অক্ষর চিহ্নিত করতে। খুব সহজেই পঠনযোগ্য কোডের জন্য, আপনি প্যাকেজটি str_replace_allথেকে চান stringr, যদিও gsubবেস আর থেকে ঠিক কাজ করে।

সঠিক নিয়মিত প্রকাশটি আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে। আপনি যে নির্দিষ্ট অক্ষরে প্রশ্নটি দিয়েছিলেন তা সরাতে পারবেন তবে সমস্ত বিরামচিহ্ন অক্ষর মুছে ফেলা অনেক সহজ।

x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")

(বেস আর সমতুল্য gsub("[[:punct:]]", " ", x)।)

একটি বিকল্প হ'ল সমস্ত অ-অক্ষরীয় অক্ষর সরিয়ে আনা।

str_replace_all(x, "[^[:alnum:]]", " ")

নোট করুন যে কোনও চিঠি বা একটি সংখ্যা বা একটি বিরাম চিহ্ন চিহ্নিত করে তার সংজ্ঞাটি আপনার লোকেলের উপর নির্ভর করে কিছুটা পরিবর্তিত হয়, তাই আপনি যা চান ঠিক তা পেতে আপনাকে কিছুটা পরীক্ষা-নিরীক্ষার প্রয়োজন হতে পারে।


11
চমৎকার উত্তর +1 টি আপনি প্রতিস্থাপন করতে চান হতে পারে " "সঙ্গে ""অন্যথায় আপনি স্ট্রিং খালি সাদা স্থান আছে।
টাইলার রিঙ্কার

8
@ টাইলার রিঙ্কার: সত্য, যদিও কিউবিক বিশেষভাবে স্থানগুলির জন্য জিজ্ঞাসা করেছিল।
রিচি কটন

8
কিভাবে সেই পাগল অক্ষর remowe মুছে ফেলতে: â í ü Â á?
কিউবিক

1
আপনাকে নিয়মিত প্রকাশে পড়তে হবে। আমার উত্তরের লিঙ্কটি দিয়ে শুরু করুন, এবং তারপরে ?regexএবং পড়ুন ?regexpr
রিচি কটন

1
এর [^[:alnum:]]সাথে [^a-zA-Z0-9]বা সম্ভবত প্রতিস্থাপনের চেষ্টা করুন \\W
রিচি কটন

27

এই "পাগল" অক্ষরগুলি অপসারণ করার জন্য রেজেক্স ব্যবহার না করে কেবল এএসসিআইআইতে রূপান্তর করুন, যা অ্যাকসেন্টগুলি সরিয়ে ফেলবে, তবে অক্ষরগুলি রক্ষণ করবে।

astr <- "Ábcdêãçoàúü"
iconv(astr, from = 'UTF-8', to = 'ASCII//TRANSLIT')

ফলাফল যা

[1] "Abcdeacoauu"

আমি যুক্ত করতে হয়েছিল iconv(astr, from="UFT-8", to="ASCII//TRANSLIT"), অন্যথায় ফরাসি চরিত্রগুলির সাথে çএটি কিছুটা মজার হয়।
ডুসিও এ

8

বিশেষ অক্ষরগুলিকে অ্যাডাস্ট্রোফে রূপান্তর করুন,

Data  <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)

অতিরিক্ত '' 'অ্যাডাস্ট্রোফ অপসারণ করতে কোডের নীচে এটি

Data <- gsub("''","" , Data ,ignore.case = TRUE)

gsub(..)অ্যাডাস্ট্রোফের সাথে বিশেষ চরিত্রটি প্রতিস্থাপনের জন্য ফাংশনটি ব্যবহার করুন

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