ডেটা.ট্যাবল ব্যবহার করে আমার সমস্যা আছে: আমি কীভাবে কলাম ক্লাস রূপান্তর করব? এখানে একটি সহজ উদাহরণ: ডেটা.ফ্রেম সহ আমার এটির রূপান্তর করতে কোনও সমস্যা নেই, ডেটা সহ। টেবিল আমি ঠিক জানি না কীভাবে:
df <- data.frame(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10))
#One way: http://stackoverflow.com/questions/2851015/r-convert-data-frame-columns-from-factors-to-characters
df <- data.frame(lapply(df, as.character), stringsAsFactors=FALSE)
#Another way
df[, "value"] <- as.numeric(df[, "value"])
library(data.table)
dt <- data.table(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10))
dt <- data.table(lapply(dt, as.character), stringsAsFactors=FALSE)
#Error in rep("", ncol(xi)) : invalid 'times' argument
#Produces error, does data.table not have the option stringsAsFactors?
dt[, "ID", with=FALSE] <- as.character(dt[, "ID", with=FALSE])
#Produces error: Error in `[<-.data.table`(`*tmp*`, , "ID", with = FALSE, value = "c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2)") :
#unused argument(s) (with = FALSE)
আমি কি এখানে স্পষ্ট কিছু মিস করি?
ম্যাথিউর পোস্টের কারণে আপডেট: আমি এর আগে একটি পুরানো সংস্করণ ব্যবহার করেছি, তবে 1.6.6 এ আপডেট করার পরেও (আমি যে সংস্করণটি এখন ব্যবহার করি) আমি এখনও একটি ত্রুটি পেয়েছি।
আপডেট 2: আসুন আমি বলি যে আমি শ্রেণীর "ফ্যাক্টর" এর প্রতিটি কলামকে একটি "চরিত্র" কলামে রূপান্তর করতে চাই, তবে কোন কলামটি কোন শ্রেণীর, তা আগাম জানি না। একটি ডেটা.ফ্রেম দিয়ে আমি নিম্নলিখিতগুলি করতে পারি:
classes <- as.character(sapply(df, class))
colClasses <- which(classes=="factor")
df[, colClasses] <- sapply(df[, colClasses], as.character)
আমি কি ডেটা টেবিলের সাথে অনুরূপ কিছু করতে পারি?
আপডেট 3:
সেশনআইএনফো () আর সংস্করণ 2.13.1 (2011-07-08) প্ল্যাটফর্ম: x86_64-pc-mingw32 / x64 (64-বিট)
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.6.6
loaded via a namespace (and not attached):
[1] tools_2.13.1
#Produces error। যাইহোক +1। আমি কোন ত্রুটি পাই না, আপনার কোন সংস্করণ আছে? এই ক্ষেত্রে একটি সমস্যা রয়েছে যদিও, এটি আগে উত্থাপিত হয়েছিল, এফআর # 1224 এবং এফআর # 1493 সম্বোধনের পক্ষে উচ্চ অগ্রাধিকার। যদিও অ্যান্ডির উত্তরটি সবচেয়ে ভাল উপায়।
invalid times argumentত্রুটি সম্পর্কে নিশ্চিত ? আমার জন্য ভাল কাজ। আপনি যা সংস্করণ আছে?
data.tableপদ্ধতিগুলিতে "[" অপারেটর আর্গুমেন্টগুলি তার চেয়ে আলাদাdata.frame