ত্রুটির তথ্যবহুল অংশটি হ'ল আপনি যে ডেটাটি পরিচালনা করছেন তা হ'ল একটি এস 4 শ্রেণি অবজেক্ট এবং এর মতো স্লট রয়েছে। এর অর্থ হ'ল আপনাকে আপনার ডেটাফ্রেমযুক্ত উপযুক্ত স্লট "@ ডেটা" চালনা করতে হবে।
আপনি যদি এনএ মান সহ "সমস্ত" সারি মুছে ফেলতে চান তবে আপনি ডেটা ফ্রেমের স্লটে na.omit ব্যবহার করতে পারেন। এটি এসপি অবজেক্টের মাধ্যমে প্রোপাগেট করে এবং অন্যান্য স্লটে সম্পর্কিত পয়েন্ট / বহুভুজগুলি সরিয়ে দেয়।
shape@data <- na.omit(shape@data)
আপনি যদি কোনও নির্দিষ্ট কলামে এনএ এর সাথে সারিগুলি সরাতে চান তবে আপনি ব্যবহার করতে পারেন:
shape@data <- shape[!is.na(shape@data$col) ,]
**** 03/08/2016 আপডেট করুন এখানে এখন একটি নেটিভ মার্জ ফাংশন রয়েছে যা এসপি অবজেক্টগুলিতে পরিচালনা করে। আপনি অন্য কোনও ডেটা.ফ্রেমের সাথে একইভাবে মার্জ কল করতে পারেন। তবে এক্স আর্গুমেন্টটি একটি স্প স্প্যাটেলডেটা ফ্রেম শ্রেণীর অবজেক্ট এবং y এমন কোনও ডেটা ফ্রেম যা আপনি মার্জ করতে চান। আমি মূল উত্তরটি রেফারেন্সের উদ্দেশ্যে রেখে যাচ্ছি।
আমার এও উল্লেখ করা উচিত যে আপনি কোনও এসপি অবজেক্টে যোগ দিতে মার্জ ফাংশনটি ব্যবহার করতে পারবেন না। মার্জ ফাংশন অপারেশন চলাকালীন ডেটা রিসর্ট করে যা এসপি অবজেক্টের অভ্যন্তরীণ সম্পর্ককে ভেঙে দেয়। দুর্ভাগ্যক্রমে, এটি ব্যাপকভাবে প্রচারিত নয় এমন একটি জিনিস। কোনও এসপি অবজেক্টের @ ডেটা স্লটে একটি ডেটাফ্রেম মার্জ করার জন্য আপনি এইভাবে ম্যাচটি ব্যবহার করতে পারেন।
shape@data = data.frame(shape@data, OtherData[match(sdata@data$IDS, OtherData$IDS),])
কোথায়; আকৃতিটি আপনার শেপ ফাইল, আইডিএস হল শনাক্তকারী যা আপনি মার্জ করতে চান এবং অন্যান্য ডেটা হ'ল ডেটা ফ্রেম যা আপনি আকারের সাথে একত্রিত করতে চান। নোট করুন যে দুটি ডেটাসেটে আইডিএস আলাদা আলাদা নাম হতে পারে তবে বাস্তবে একই মান হওয়া দরকার (অস্পষ্ট নয়)।
বিকল্পভাবে আপনি এই ফাংশনটি ব্যবহার করতে পারেন।
join.sp.df <- function(x, y, xcol, ycol) {
x$sort_id <- 1:nrow(as(x, "data.frame"))
x.dat <- as(x, "data.frame")
x.dat2 <- merge(x.dat, y, by.x = xcol, by.y = ycol)
x.dat2.ord <- x.dat2[order(x.dat2$sort_id), ]
x2 <- x[x$sort_id %in% x.dat2$sort_id, ]
x2.dat <- as(x2, "data.frame")
row.names(x.dat2.ord) <- row.names(x2.dat)
x2@data <- x.dat2.ord
return(x2)
}
কোথায়; x = sp স্পটিয়ালডাটা ফ্রেম অবজেক্ট, এক্স = সাথে একত্রীকরণের জন্য y = ডেটাফ্রেম অবজেক্ট, এসপি অবজেক্টে কলামের নামটি মার্জ করুন (উদ্ধৃতি হওয়া দরকার), ycol = ডেটাফ্রেম অবজেক্টে কলামের নাম মার্জ করুন (উদ্ধৃতি দেওয়ার প্রয়োজন)।
কিছু কারণে আমি @ কেলি প্রশ্নে মন্তব্য করতে পারি না তাই আমি আমার মূল উত্তরটি সম্পাদনা করছি। আপনি আর আর এসপির কোন সংস্করণটি চালাচ্ছেন তা পরীক্ষা করে দেখুন? এটি জানতে আপনি সেশনআইএনফো () চালাতে পারেন। @ ডেটা অবজেক্টটি ম্যানিপুলেট করার সময় অন্যান্য ডেটা স্লটে যুক্ত সম্পর্কিত বস্তুগুলি সরিয়ে ফেলার আচরণটি কেবলমাত্র গত কয়েকটি এসপি সংস্করণে উপলব্ধ। যদি বর্তমান সংস্করণটি না চালানো হয় তবে প্যাকেজ মেনুতে "আপডেট প্যাকেজগুলি" দিয়ে প্যাকেজটি আপডেট করার চেষ্টা করুন। যদি চলমান> = উইন্ডোজ ভিস্তা প্রশাসক হিসাবে চালানো নিশ্চিত হন। আপনার পূর্বে এবং অবজেক্টের মাত্রা যেমন, ম্লান (আকৃতি) দেখুন যা সারি / কলসের সংখ্যা উপস্থাপন করে। সারিগুলির সংখ্যা বৈশিষ্ট্যযুক্ত সামগ্রীর সংখ্যার সাথে মিলিত হয়। আপনি স্থানান্তরের বস্তুতে সারি সংখ্যা @ ডেটা স্লটে যেমন স্লোগান (আকৃতি) এর সাথে সারি সংখ্যার সাথে মেলে কিনা তা পরীক্ষা করে ফলাফলগুলি পরীক্ষা করতে পারেন;