কোন শেফফাইল থেকে ফিল্টার করা আর ডেটা ফ্রেম তৈরি করতে আমি কীভাবে দুর্গন্ধ () ব্যবহার করতে পারি?


11

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

require(maptools)
shape <- readShapePoly(wards)
str(shape)

যা আমাকে এই প্রতিশ্রুতিবদ্ধ আউটপুট দেয়:

Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 1690 obs. of  4 variables:
  .. ..$ NAME      : Factor w/ 1507 levels "Abbey Cwmhir",..: 969 90 111 200 441 477 1455 249 255 305 ...
  .. ..$ DESCRIPTIO: Factor w/ 4 levels "COMMUNITY","COMMUNITY WARD",..: 2 2 1 1 2 2 2 2 1 1 ...
  .. ..$ COMMUNITY : Factor w/ 858 levels "Abbey Cwmhir",..: 67 67 81 128 152 152 152 152 157 190 ...
  .. ..$ FILE_NAME : Factor w/ 23 levels "ABERTAWE_-_SWANSEA",..: 1 1 1 1 1 1 1 1 1 1 ...
  .. ..- attr(*, "data_types")= chr [1:4] "C" "C" "C" "C"
  ..@ polygons   :List of 1690
  .. ..$ :Formal class 'Polygons' [package "sp"] with 5 slots
  .. .. .. ..@ Polygons :List of 1
  .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
  .. .. .. .. .. .. ..@ labpt  : num [1:2] 259009 188524
  .. .. .. .. .. .. ..@ area   : num 1923892
  .. .. .. .. .. .. ..@ hole   : logi FALSE
  .. .. .. .. .. .. ..@ ringDir: int 1
  .. .. .. .. .. .. ..@ coords : num [1:1629, 1:2] 259413 259420 259427 259427 259432 ...
  .. .. .. ..@ plotOrder: int 1
  .. .. .. ..@ labpt    : num [1:2] 259009 188524
  .. .. .. ..@ ID       : chr "0"
  .. .. .. ..@ area     : num 1923892

এখন আমি যদি এটি করি:

bar <- fortify(shape, region = "NAME")

আমি একটি সুন্দর ডেটা ফ্রেম barপেয়েছি যা আমার প্রত্যাশার চেয়ে দেখতে বেশ সুন্দর দেখাচ্ছে:

> str(bar)
'data.frame':   4744053 obs. of  7 variables:
 $ long : num  302962 302970 302974 303013 303015 ...
 $ lat  : num  280066 280076 280078 280097 280105 ...
 $ order: int  1 2 3 4 5 6 7 8 9 10 ...
 $ hole : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ piece: Factor w/ 29 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ group: Factor w/ 1762 levels "Abbey Cwmhir.1",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ id   : chr  "Abbey Cwmhir" "Abbey Cwmhir" "Abbey Cwmhir" "Abbey Cwmhir" ..

তবে এটি একটি বড় ডেটা ফ্রেম এবং ggplotএটি প্রদর্শনের চেষ্টা করার সময় পাফের বাইরে চলে যায়। বাস্তবে আমি কেবল একবারে একটি অঞ্চল দেখতে চাই। দেখে মনে হচ্ছে FILE_NAMEশেপ অবজেক্টের ফ্যাক্টরটি আমি যা চাই তা হ'ল এটি বেশিরভাগ কাউন্টির সাথে এবং প্রধান কনক্যুয়েশনগুলির সাথে মিলে যায়।

> unique(shape@data$FILE_NAME)
 [1] ABERTAWE_-_SWANSEA
 [2] BLAENAU_GWENT_-_BLAENAU_GWENT
 [3] BRO_MORGANNWG_-_THE_VALE_OF_GLAMORGAN
 [4] CAERDYDD_-_CARDIFF
 [5] CAERFFILI_-_CAERPHILLY
 [6] CASNEWYDD_-_NEWPORT
 [7] CASTELL-NEDD_PORT_TALBOT_-_NEATH_PORT_TALBOT
 [8] CONWY_-_CONWY
 [9] GWYNEDD_-_GWYNEDD
[10] MERTHYR_TUDFUL_-_MERTHYR_TYDFIL
[11] PEN-Y-BONT_AR_OGWR_-_BRIDGEND
[12] POWYS_-_POWYS
[13] RHONDDA_CYNON_TAF_-_RHONDDA_CYNON_TAFF
[14] SIR BENFRO - PEMBROKESHIRE
[15] SIR_BENFRO_-_PEMBROKESHIRE
[16] SIR_CEREDIGION_-_CEREDIGION
[17] SIR_DDINBYCH_-_DENBIGHSHIRE
[18] SIR_FYNWY_-_MONMOUTHSHIRE
[19] SIR_GAERFYRDDIN_-_CARMARTHENSHIRE
[20] SIR_YNYS_MON_-_ISLE_OF_ANGLESEY
[21] SIR_Y_FFLINT_-_FLINTSHIRE
[22] TOR-FAEN_-_TORFAEN
[23] WRECSAM_-_WREXHAM
23 Levels: ABERTAWE_-_SWANSEA ... WRECSAM_-_WREXHAM

প্র: shapeশেফফাইল থেকে আমি যে বস্তুটি বের করি সেগুলি থেকে কীভাবে আমি কেবলমাত্র ডেটার একটি উপসেট নির্বাচন করতে পারি ? উদাহরণস্বরূপ, শুধুমাত্র POWYS_-_POWYSঅংশ? আমি যদি কোনওরকম FILE_NAMEদিয়ে তৈরি করা ডেটা ফ্রেমের মধ্যে অন্তর্ভুক্ত করতে পারি fortifyতবে আমি সহজেই barডেটা ফ্রেমটি সাবসেট করতে পারতাম তবে কীভাবে এটি করতে হয় তা আমি জানি না। বা fortifyঅবজেক্টের কেবলমাত্র অংশগুলি বের করার জন্য কোনও উপায় আছে ?

উত্তর:


5

ইনডেক্সিং ব্যবহার করে শেফফাইল ডেটার একটি উপসেটটি নির্বাচন করুন:

sub.shape <- shape[shape$FILE_NAME == "POWYS_-_POWYS",]

fortify(sub.shape) তারপরে আপনাকে অনেক হ্রাস করা ডেটাফ্রেম দেবে।


ধন্যবাদ, এখন যাচাই করা, আশাব্যঞ্জক দেখাচ্ছে। এটি কি সম্ভবত শেষে ""] হওয়া উচিত?
স্লোলিয়ারার

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