উত্তর:
এখানে একটি ওলাইনার ...
y[sort(order(y)[x])]
[সম্পাদনা:] এটি নীচে হিসাবে বিরতি:
order(y) #We want to sort by y, so order() gives us the sorting order
order(y)[x] #looks up the sorting order for each x
sort(order(y)[x]) #sorts by that order
y[sort(order(y)[x])] #converts orders back to numbers from orders
xএবং এতগুলি সহজ প্রকরণের জন্য ব্যর্থ y। x <- c(1,4,2); y <- c(1,2,4)এই ক্ষেত্রে.
এটা কেমন
x[order(match(x,y))]
আপনি xএকটি আদেশযুক্ত ফ্যাক্টারে রূপান্তর করতে পারেন :
x.factor <- factor(x, levels = y, ordered=TRUE)
sort(x)
sort(x.factor)
একথাও ঠিক যে, কারণের মধ্যে আপনার নম্বর পরিবর্তন আমূল পথ কোডে স্রোতবরাবর ক্ষীণভাবে প্রতিক্রিয়া পরিবর্তন করতে পারেন x। তবে যেহেতু আপনি আমাদের পরবর্তী ঘটনাটি সম্পর্কে কোনও প্রসঙ্গ দেন নি, তাই আমি ভেবেছিলাম এটি বিকল্প হিসাবে প্রস্তাব করব।
xবাছাই করা ভেক্টরে মান না থাকে তখনও কাজ করুন y:x <- c(2, 2, 3, 4, 1, 4, 4, 3, 3, 6); y <- c(4, 2, 1, 3); as.numeric(as.character(sort(factor(x, unique(c(y, x))))))
আপনার যদি "y" এর অর্ডার পাওয়া দরকার তবে এটির সংখ্যা বা অক্ষর নির্বিশেষে:
x[order(ordered(x, levels = y))]
4 4 4 2 2 1 3 3 3
পদক্ষেপ দ্বারা:
a <- ordered(x, levels = y) # Create ordered factor from "x" upon order in "y".
[1] 2 2 3 4 1 4 4 3 3
Levels: 4 < 2 < 1 < 3
b <- order(a) # Define "x" order that match to order in "y".
[1] 4 6 7 1 2 5 3 8 9
x[b] # Reorder "x" according to order in "y".
[1] 4 4 4 2 2 1 3 3 3
[ সম্পাদনা করুন: স্পষ্টতই আয়ানের সঠিক দৃষ্টিভঙ্গি রয়েছে তবে আমি এটি উত্তরসূরির জন্য রেখে দেব]]
আপনি আপনার y ভেক্টরের সাথে সূচি রেখে লুপগুলি ছাড়াই এটি করতে পারেন। Y তে একটি বর্ধিত সংখ্যাসূচক মান যুক্ত করুন এবং সেগুলি মার্জ করুন:
y <- data.frame(index=1:length(y), x=y)
x <- data.frame(x=x)
x <- merge(x,y)
x <- x[order(x$index),"x"]
x
[1] 4 4 4 2 2 1 3 3 3
x <- c(2, 2, 3, 4, 1, 4, 4, 3, 3)
y <- c(4, 2, 1, 3)
for(i in y) { z <- c(z, rep(i, sum(x==i))) }
Z এর ফলাফল: 4 4 4 2 2 1 1 3 3 3
গুরুত্বপূর্ণ পদক্ষেপগুলি:
(i in y) - স্বার্থের উপাদানগুলির উপর চাপ দেয়।
z <- c (z, ...) - প্রতিটি সুব্র্যাপশনকে ঘুরে দাঁড়ায়
rep (i, যোগফল (x == i)) - i (বর্তমান আগ্রহের উপাদান) যোগফল (x == i) বার (আমরা x- এ আমরা যে বার পেয়েছি তার সংখ্যা) পুনরাবৃত্তি করে।