আমার প্রশ্নে অনুলিপি বনাম রেফারেন্স দ্বারা নিয়োগ সঙ্গে সম্পর্কযুক্ত data.table। আমি জানতে চাইছি কেউ রেফারেন্স অনুসারে সারিগুলি মুছে ফেলতে পারে কিনা
DT[ , someCol := NULL]
আমি জানতে চাই
DT[someRow := NULL, ]
আমি অনুমান করি যে কেন এই ফাংশনটি বিদ্যমান নেই তার একটি যুক্তিসঙ্গত কারণ রয়েছে, সুতরাং আপনি কেবল নীচের মত সাধারণ অনুলিপি পদ্ধতির একটি ভাল বিকল্প চিহ্নিত করতে পারেন। বিশেষত, উদাহরণ (ডেটা টেবিল) থেকে আমার প্রিয় সাথে যেতে,
DT = data.table(x = rep(c("a", "b", "c"), each = 3), y = c(1, 3, 6), v = 1:9)
# x y v
# [1,] a 1 1
# [2,] a 3 2
# [3,] a 6 3
# [4,] b 1 4
# [5,] b 3 5
# [6,] b 6 6
# [7,] c 1 7
# [8,] c 3 8
# [9,] c 6 9
বলুন আমি এই ডেটা থেকে প্রথম সারিটি মুছতে চাই। টেবিল। আমি জানি আমি এটি করতে পারি:
DT <- DT[-1, ]
কিন্তু প্রায়ই আমরা, যে এড়াতে চান কারণ আমরা অবজেক্ট কপি করা হয় (এবং যদি এন যে, 3 * এন পুনরুদ্ধার সম্পর্কে প্রয়োজন object.size(DT), এখানে নির্দিষ্ট এখন আমি খুঁজে পাওয়া যায়নি। set(DT, i, j, value)আমি জানি (যেমন এখানে সেট নির্দিষ্ট মান। সব সেট সারি 1 এবং 2 এবং কলাম 2 এবং 3 থেকে শূন্যের মানগুলি)
set(DT, 1:2, 2:3, 0)
DT
# x y v
# [1,] a 0 0
# [2,] a 0 0
# [3,] a 6 3
# [4,] b 1 4
# [5,] b 3 5
# [6,] b 6 6
# [7,] c 1 7
# [8,] c 3 8
# [9,] c 6 9
তবে কীভাবে আমি প্রথম দুটি সারি মুছব, বলুন? এরকম
set(DT, 1:2, 1:3, NULL)
পুরো ডিটি কে নুল করে দেয়।
আমার এসকিউএল জ্ঞানটি খুব সীমাবদ্ধ, সুতরাং আপনারা আমাকে বলুন: প্রদত্ত ডেটা টেবিলটি এসকিউএল প্রযুক্তি ব্যবহার করে, সেখানে কি এসকিউএল কমান্ডের সমতুল্য?
DELETE FROM table_name
WHERE some_column=some_value
ডেটা.ট্যাবেলে?
DT[ , keep := .I > 1]পরবর্তীকালের ক্রিয়াকলাপগুলির জন্য সাবসেট: DT[(keep), ...]সম্ভবত setindex(DT, keep)এই সাবসেটিংয়ের গতিও। পেনেসিয়া নয়, তবে আপনার ওয়ার্কফ্লোতে ডিজাইনের পছন্দ হিসাবে বিবেচনা করা সার্থক - আপনি কি সত্যিই এই সমস্ত সারি স্মৃতি থেকে মুছতে চান , বা আপনি এগুলি বাদ দিতে চান? উত্তর ব্যবহার ক্ষেত্রে পৃথক।
data.table()এসকিউএল প্রযুক্তিটি এত বেশি ব্যবহার করে যে কোনও এসকিউএল-এর বিভিন্ন ক্রিয়াকলাপ এবং এ-তে বিভিন্ন যুক্তির মধ্যে একটি সমান্তরাল আঁকতে পারেdata.table। আমার কাছে, "প্রযুক্তি" এর উল্লেখটি কিছুটা বোঝায় যেdata.tableএসকিউএল ডাটাবেসের শীর্ষে বসে আছে কোথাও, যা আফাইক নয়।