উত্তর:
ডেটা টেবিলের সংস্করণগুলির জন্য >= 1.9.8, নিম্নলিখিতটি কেবলমাত্র কাজ করে:
library(data.table)
dt <- data.table(a = 1, b = 2, c = 3)
# select single column by index
dt[, 2]
# b
# 1: 2
# select multiple columns by index
dt[, 2:3]
# b c
# 1: 2 3
# select single column by name
dt[, "a"]
# a
# 1: 1
# select multiple columns by name
dt[, c("a", "b")]
# a b
# 1: 1 2
ডেটা.টিবেলের সংস্করণগুলির জন্য < 1.9.8(যার জন্য সংখ্যাসূচক কলাম নির্বাচন ব্যবহারের প্রয়োজন ছিল with = FALSE), এই উত্তরের এই পূর্ববর্তী সংস্করণটি দেখুন । এছাড়াও v1.9.8 এ নিউজ দেখুন , সম্ভাব্য দুটি পরিবর্তন, পয়েন্ট 3।
DT[,list(b:c), আমি যেমন উপাত্ত টেবিলের মধ্যে কলামগুলি সরাসরি রূপান্তর করা সুবিধাজনক বলে মনে করেছি, যেমন আমি করতে পারি DT[,list(1/b,2*c)]তবে এটি দিয়ে কাজ করে না।
data.frameব্যবহারের উপযুক্ত কোনও উপায় নেই with=FALSE। যাইহোক, 3 সম্পর্কে সপ্তাহ আগে থেকে, উন্নয়ন সংস্করণ data.table মত কল পরিবর্তন করা হয়েছে dt[, 2], dt[, 2:3], dt[, "b"], এবং dt[, c("b", "c")]একই আচরণ হিসাবে তারা সঙ্গে না data.frameগুলি ছাড়া স্পষ্টভাবে সেট করতে থাকার with=FALSE। ভয়াবহ! নিউজ এন্ট্রি সহ পরিবর্তনের বর্ণনা সহ নির্দিষ্ট প্রতিশ্রুতিবদ্ধতার জন্য এখানে দেখুন ।
এটি কিছুটা ভার্বোজ, তবে আমি লুকানো .SDভেরিয়েবল ব্যবহার করতে অভ্যস্ত হয়ে পড়েছি।
b<-data.table(a=1,b=2,c=3,d=4)
b[,.SD,.SDcols=c(1:2)]
এটি একটি ঝামেলা কিছুটা হলেও আপনি অন্যান্য ডেটা.ট্যাবল বৈশিষ্ট্যগুলি (আমার মনে হয় না) হারাবেন না, সুতরাং আপনার এখনও অন্য গুরুত্বপূর্ণ ফাংশনগুলি যেমন জোড় টেবিল ইত্যাদি ব্যবহার করতে সক্ষম হওয়া উচিত should
V1.10.2 থেকে, আপনি ব্যবহার করতে পারেন ..
dt <- data.table(a=1:2, b=2:3, c=3:4)
keep_cols = c("a", "c")
dt[, ..keep_cols]
dt[, !..keep_cols]এবং dt[, -..keep_cols] প্রত্যাশার মতো কাজ করে!
@ টম, এই সমাধানটি দেখানোর জন্য আপনাকে অনেক ধন্যবাদ। এটি আমার জন্য খুব ভালো কাজ করছে।
আমি কেবল একটি কলাম মুদ্রণ থেকে এবং উপরের উদাহরণ থেকে বাদ দেওয়ার উপায় খুঁজছিলাম। দ্বিতীয় কলামটি বাদ দিতে আপনি এরকম কিছু করতে পারেন
library(data.table)
dt <- data.table(a=1:2, b=2:3, c=3:4)
dt[,.SD,.SDcols=-2]
dt[,.SD,.SDcols=c(1,3)]
dt[,"a"]এবংdt[,"a", with=FALSE]তা দেখতে একটি সহায়ক বিকল্প এটা সত্যিই হয়।