मैं आर या पायथन का उपयोग करके पंक्तियों में डेटा के विशिष्ट जोड़े में मूल्यों को स्वैप करना चाहता हूं। मेरे पास पहला डेटाफ्रेम है जिसमें लाइन द्वारा लाइन परीक्षण है, और दूसरा डेटाफ्रेम है जो परीक्षणों में प्रस्तुत शब्दों के क्रम के लिए एक संदर्भ सूची है। जैसा कि पहले डेटाफ़्रेम में कुछ शब्द जोड़े सही क्रम में नहीं हैं, मैं उन शब्दों के विशिष्ट जोड़े को स्वैप करना चाहूंगा जो दूसरे डेटाफ़्रेम के आधार पर क्रम में नहीं हैं।
पहला डेटाफ्रेम इस तरह दिखता है:
SN word1 word2
1 dog cat
2 mouse rabbit
3 sheep goat
4 ox snake
5 cat dog
मेरे पास दूसरा डेटाफ्रेम है जो इस तरह दिखता है:
word1 word2
cat dog
mouse rabbit
sheep goat
snake ox
मैं जो करना चाहता हूं वह पहले डेटाफ्रेम की पंक्तियों में कुछ मानों को स्वैप करना है जैसे कि शब्द दूसरे डेटाफ्रेम द्वारा निर्दिष्ट क्रम में हैं। उदाहरण के लिए, दूसरा डेटाफ्रेम निर्दिष्ट करता है कि बिल्ली "शब्द 1" है और कुत्ता "शब्द 2" है, इसलिए यदि पहले डेटाफ्रेम में कोई उदाहरण है जहां कुत्ता "शब्द 1" है और बिल्ली "शब्द 2" है, तो मैं आदेश के लिए चाहूंगा स्विच किए जाने वाले शब्द।
अंतिम आउटपुट इस तरह दिखना चाहिए:
SN word1 word2
1 cat dog
2 mouse rabbit
3 sheep goat
4 snake ox
5 cat dog
क्या आर या पायथन में इसे हासिल करने का कोई तरीका है? किसी भी तरह की सहायता को आभार समझेंगे!
1 उत्तर
मान लें कि दो डेटाफ़्रेम को df1
और df2
कहा जाता है, तो एक तरीका यह होगा कि दोनों डेटाफ़्रेम में शब्दों को वर्णानुक्रम में क्रमबद्ध करें और शामिल हों। अंत में df2
में मौजूद ऑर्डर को रखें।
आर में, आप इसे इस प्रकार कर सकते हैं:
library(dplyr)
df1 %>%
mutate(sort_col1 = pmin(word1, word2),
sort_col2 = pmax(word1, word2)) %>%
left_join(df2 %>%
mutate(sort_col1 = pmin(word1, word2),
sort_col2 = pmax(word1, word2)),
by = c('sort_col1', 'sort_col2')) %>%
transmute(SN, word1 = word1.y, word2 = word2.y)
# SN word1 word2
#1 1 cat dog
#2 2 mouse rabbit
#3 3 sheep goat
#4 4 snake ox
#5 5 cat dog
डेटा
df1 <- structure(list(SN = 1:5, word1 = c("dog", "mouse", "sheep", "ox",
"cat"), word2 = c("cat", "rabbit", "goat", "snake", "dog")),
class = "data.frame", row.names = c(NA, -5L))
df2 <- structure(list(word1 = c("cat", "mouse", "sheep", "snake"),
word2 = c("dog","rabbit", "goat", "ox")),
class = "data.frame", row.names = c(NA, -4L))
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।