Dplyr একাধিক কলাম বা সংমিশ্রিত কীতে যোগদান করতে পারেন?


111

আমি বুঝতে পারি যে dplyrv3.0 আপনাকে বিভিন্ন ভেরিয়েবলের সাথে যোগ দিতে দেয়:

left_join(x, y, by = c("a" = "b")ম্যাচ হবে x.aথেকেy.b

তবে, ভেরিয়েবলের সংমিশ্রণে যোগ দেওয়া কি সম্ভব বা আমার আগেই একটি যৌগিক কী যুক্ত করতে হবে?

এটার মতো কিছু:

left_join(x, y, by = c("a c" = "b d")এর সংযুক্তকরণের [মেলে x.aএবং x.cকরতে] [ y.bএবং y.d]

উত্তর:


199

টিবল () ব্যবহার করার জন্য আপডেট করা হচ্ছে

byযুক্তির জন্য আপনি 1 এর চেয়ে বেশি দৈর্ঘ্যের একটি নামযুক্ত ভেক্টরটি পাস করতে পারেন left_join():

library(dplyr)

d1 <- tibble(
  x = letters[1:3],
  y = LETTERS[1:3],
  a = rnorm(3)
  )

d2 <- tibble(
  x2 = letters[3:1],
  y2 = LETTERS[3:1],
  b = rnorm(3)
  )

left_join(d1, d2, by = c("x" = "x2", "y" = "y2"))

5
এর জন্য ধন্যবাদ; যখন ডেটা ফ্রেমের কলামগুলিতে একই নাম থাকে যেমন কাজ করে তখনও কাজ করে left_join(d1, d2, by = c("firstname" = "firstname", "lastname" = "lastname"))। কারওর কাছে সুস্পষ্ট নাও হতে পারে।
অ্যান্টনি সাইমন মেলিনিকজুক

10
যোগদানের কলামগুলি একই হয়ে গেলে আপনি =left_join(d1, d2, by = c("firstname", "lastname"))
এড়াতেও

2
ওওফ ... আমি বাড়ির বাইরে ছিলাম, তবে ... এটি একটি অ্যান্ড ... বলে মনে হচ্ছে যা আমি বোধগম্য করে তবে আমি আশা করছিলাম যে এটি এক x = x2 বা y = y2 হবে, কারণ আমার একাধিক সূচী রয়েছে স্বতন্ত্র সম্পদ জুড়ে সদৃশ কিন্তু ক্ষতিগ্রস্ত এন্ট্রি সনাক্ত করার চেষ্টা করার জন্য নির্মিত।
জোশুয়া এরিক টারকোটি

নামগুলি একই হতে হবে না, কেবলমাত্র সম্পর্কিত ডেটা ফ্রেমে বৈধ কলামের নাম হওয়া উচিত যেমন একটির একটি কলাম "নাম" এবং অন্য "প্রথম নাম" থাকতে পারে এবং ঠিক ঠিক কাজ করবে work
সান এমমানুয়েল জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.