r - নেতৃস্থানীয় এবং পিছনে হোয়াইটস্পেস ছাঁটাই কিভাবে?




whitespace trim (9)

ad1) সাদা শূণ্যস্থান দেখতে আপনি সরাসরি print.data.frame সাথে print.data.frame কল করতে পারেন:

print(head(iris), quote=TRUE)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width  Species
# 1        "5.1"       "3.5"        "1.4"       "0.2" "setosa"
# 2        "4.9"       "3.0"        "1.4"       "0.2" "setosa"
# 3        "4.7"       "3.2"        "1.3"       "0.2" "setosa"
# 4        "4.6"       "3.1"        "1.5"       "0.2" "setosa"
# 5        "5.0"       "3.6"        "1.4"       "0.2" "setosa"
# 6        "5.4"       "3.9"        "1.7"       "0.4" "setosa"

অন্যান্য অপশন জন্য ?print.data.frame এছাড়াও দেখুন।

আমি একটি data.frame নেতৃস্থানীয় এবং পিছনে হোয়াইটস্পেস সঙ্গে কিছু সমস্যা হচ্ছে। যেমন আমি একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে data.frame এ একটি নির্দিষ্ট row নজর দিতে চাই।

> myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] 

[1] codeHelper     country        dummyLI    dummyLMI       dummyUMI       
[6] dummyHInonOECD dummyHIOECD    dummyOECD      
<0 rows> (or 0-length row.names)

আমি অবাক হলাম কেননা অস্ট্রিয়া দেশটি আমার data.frame সম্ভবত বিদ্যমান ছিল বলে প্রত্যাশিত আউটপুট পাইনি। আমার কোড ইতিহাসটি সন্ধান করার পরে এবং কী ভুল হয়েছে তা নির্ধারণ করার চেষ্টা করে আমি চেষ্টা করেছি:

> myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)]
   codeHelper  country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD
18        AUT Austria        0        0        0              0           1
   dummyOECD
18         1

আমি কমান্ড পরিবর্তন করেছি অস্ট্রিয়া পর একটি অতিরিক্ত হোয়াইটস্পেস।

আরও বিরক্তিকর সমস্যা সম্ভবত উদ্ভূত। যেমন আমি যখন দেশ কলামের উপর ভিত্তি করে দুটি ফ্রেম একত্রিত করতে চাই। অন্য ফ্রেমের "Austria" । ফ্রেম "Austria" । মেলা কাজ করে না।

  1. আমার পর্দায় হোয়াইট স্পেস দেখানোর জন্য একটি দুর্দান্ত উপায় আছে যাতে আমি সমস্যা সম্পর্কে সচেতন?
  2. আর আমি কি আর আর নেতৃস্থানীয় এবং পিছনে হোয়াইট স্পেস অপসারণ করতে পারি?

এ পর্যন্ত আমি একটি সহজ Perl স্ক্রিপ্ট লিখতাম যা হোয়াইটস্পেসটি সরাতে পারে তবে এটি চমৎকার হবে যদি আমি কোনভাবে R এর ভিতরে এটি করতে পারি।


আপনার ডেটা ফাইলটি পড়ার সময় সম্ভবত সেরা উপায়টি হ'ল পশ্চাদপসরণ হোয়াইটস্পেসগুলিকে পরিচালনা করা। আপনি read.csv বা read.table ব্যবহার read.csv আপনি প্যারামিটার strip.white=TRUE সেট করতে পারেন।

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

# returns string w/o leading whitespace
trim.leading <- function (x)  sub("^\\s+", "", x)

# returns string w/o trailing whitespace
trim.trailing <- function (x) sub("\\s+$", "", x)

# returns string w/o leading or trailing whitespace
trim <- function (x) gsub("^\\s+|\\s+$", "", x)

আমার myDummy$country এই ফাংশনগুলির একটি ব্যবহার করতে:

 myDummy$country <- trim(myDummy$country)

আপনি ব্যবহার করতে পারেন হোয়াইটস্পেস 'প্রদর্শন' করতে:

 paste(myDummy$country)

যা আপনাকে উদ্ধৃতি চিহ্ন দ্বারা ঘিরে স্ট্রিং দেখাবে (") স্পট স্পট সহজ হোয়াইটস্পেস তৈরীর।


আমি ট্রিম চেষ্টা ()। সাদা স্পেস পাশাপাশি '\ n' ভাল কাজ করে। x = '\ n হার্ডেন, জে। \ n'

ছাঁটা (x) এর


আমি ব্যবহারকারীকে মন্তব্য হিসাবে উত্তর যোগ করতে পছন্দ করব 56 কিন্তু এখনও একটি স্বাধীন উত্তর হিসাবে লেখার অক্ষম। নেতৃস্থানীয় এবং পিছিয়ে যাওয়া স্থানগুলি সরানো gdata প্যাকেজ থেকে trim () ফাংশন দ্বারাও অর্জন করা যেতে পারে:

require(gdata)
example(trim)

ব্যবহার উদাহরণ:

> trim("   Remove leading and trailing blanks    ")
[1] "Remove leading and trailing blanks"

তাদের থেকে পরিত্রাণ পেতে সাদা জায়গা এবং সাব সঙ্গে পর্যবেক্ষণ খুঁজে পেতে grep বা grepl ব্যবহার করুন।

names<-c("Ganga Din\t","Shyam Lal","Bulbul ")
grep("[[:space:]]+$",names)
[1] 1 3
grepl("[[:space:]]+$",names)
[1]  TRUE FALSE  TRUE
sub("[[:space:]]+$","",names)
[1] "Ganga Din" "Shyam Lal" "Bulbul"  

নেতৃস্থানীয় এবং পিছনে হোয়াইটস্পেস অপসারণ একটি সহজ ফাংশন :

trim <- function( x ) {
  gsub("(^[[:space:]]+|[[:space:]]+$)", "", x)
}

ব্যবহার:

> text = "   foo bar  baz 3 "
> trim(text)
[1] "foo bar  baz 3"

র 3.2.0 হিসাবে নেতৃস্থানীয় / পিছনে হোয়াইটস্পেস অপসারণের জন্য একটি নতুন ফাংশন চালু করা হয়েছিল:

trimws()

দেখুন: http://stat.ethz.ch/R-manual/R-patched/library/base/html/trimws.html


সর্বোত্তম পদ্ধতি trimws ()

নিম্নলিখিত কোড এই ফাংশন সমগ্র তথ্য ফ্রেম প্রয়োগ করা হবে

mydataframe <- data.frame (lapply (mydataframe, trimws), stringsAsFactors = মিথ্যা)


myDummy[myDummy$country == "Austria "] <- "Austria"

এর পরে, আপনাকে R কে জোর দেওয়া দরকার যা "অস্ট্রিয়া" স্তর হিসাবে স্বীকৃতি দেয় না। আসুন আমরা আপনাকে "ইউএসএ" এবং "স্পেন" মাত্রা হিসাবে জাহির করি।

myDummy$country = factor(myDummy$country, levels=c("Austria", "USA", "Spain"))

সর্বাধিক ভোটপ্রাপ্ত প্রতিক্রিয়া চেয়ে একটু কম ভয়ঙ্কর, কিন্তু এটি এখনও কাজ করা উচিত।





built-in