6
में सूची के स्तंभ से स्तंभ बनाएं मैं निम्न कार्य पूरे करने को समझ नहीं सकता, data.table
data.table
set.seed(123); N=1e5
DT = data.table(x=rnorm(N), y=sample(c('a','b','c'),N,T))
probs = seq(.1,1,.1); newCols <- paste("q",100*probs,sep="");
DT2 <- DT[ ,list(Q=list(quantile(x,probs=probs))),by=y]
DT2
# y Q
#1: b -1.2817037351734,-0.840293441466144,-0.525195748246148,-0.259574774974136,
#2: c -1.26975023312311,-0.832359658553173,-0.513320691339448,-0.247863323660894,
#3: a -1.28189935066568,-0.838918942382995,-0.522409189372727,-0.257356179072232,
#Here I want to create 10 columns from Q called q10, q20...
DT2[ , newCols:=Q] #can't make this work because it is evaluated in the wrong environment I guess
अच्छी तरह से किया गया, मुझे इस चाल का जिक्र करने वाला एक और पोस्ट नहीं मिल रहा है, हालांकि मेरे पास इंप्रेशन है कि यह वेनिला है ... अजीब बात यह है कि अगर मैं नए नामों के नाम के साथ एनए का नाम-वेक्टर बनाता हूं तो ' डीटी 2 [, नाम (MyNAVec): = क्यू] ' – statquant
@statquant काम करेगा, वास्तव में कुछ हालिया पोस्ट वास्तव में हैं (पीआर मोटे तौर पर खोजने में आसान नहीं है क्योंकि इसमें स्पष्ट शीर्षक नहीं है)। देखें [** यह **] (http://stackoverflow.com/a/15510828/559784) और [** यह **] (http://stackoverflow.com/questions/6902087/proper-fastest-way- टू-आकृति बदलें एक डेटा तालिका/15512437 # 15512437)। – Arun
@statquant, कृपया संपादित समाधान की जांच करें। मैंने इसे * तेज * के रूप में संशोधित किया है। पिछले समाधान कई समूहों के तहत अक्षम है (क्योंकि प्रत्येक समूह के लिए नाम बनाए जाते हैं)। – Arun