कॉलम जोड़ना और उनके अंशों को वर्णक्रम में बदलना [डुप्लिकेट]

Dec 02 2020

मेरे पास एक डाटा फ्रेम है जिसे issuesdataमैंने एक बड़े फ्रेम से बनाया है,clean.data

issue1 <- as.vector(clean.data$issue1) issue2 <- as.vector(clean.data$issue2)
issue3 <- as.vector(clean.data$issue3)
issuesdata <- data.frame(issue1, issue2, issue3)

issuesdata %>% dplyr::slice(10:15)
          issue1      issue2      issue3
1       economic        <NA>        <NA>
2       economic unification        <NA>
3       economic        <NA>        <NA>
4 transportation    aviation        <NA>
5        justice        <NA>        <NA>
6        slavery    economic humanrights

मेरे दो लक्ष्य हैं:

  1. इन स्तंभों को एक साथ इस तरह के मर्ज एक चौथे स्तंभ के बाद एक चरित्र स्ट्रिंग में सभी मुद्दों से युक्त है कि वहाँ (स्तंभ नाम: allissues)
  2. मुद्दों का पाठ allissuesवर्णानुक्रम में है

उदाहरण के लिए, पंक्ति 2 पंक्ति allissuesमें फॉर्म में economic unificationरहेगी लेकिन एक वर्ण स्ट्रिंग होगी। पंक्ति 4 होगी Aviation Transportation, जबकि पंक्ति 6 ​​है economic humanrights slavery

मैं यह कार्य कैसे करूं?

जवाब

1 RonakShah Dec 02 2020 at 13:01

रॉविएव एनए मूल्यों को गिराते हैं, उन्हें क्रमबद्ध करते हैं और उन्हें एक साथ चिपकाते हैं।

आधार R में:

issuesdata$combine <- apply(issuesdata, 1, function(x) 
                            toString(sort(na.omit(x))))

या साथ dplyr:

library(dplyr)

issuesdata %>%
  rowwise() %>%
  mutate(combine = toString(sort(na.omit(c_across()))))

#  issue1         issue2      issue3      combine_data                  
#  <chr>          <chr>       <chr>       <chr>                         
#1 economic       NA          NA          economic                      
#2 economic       unification NA          economic, unification         
#3 economic       NA          NA          economic                      
#4 transportation aviation    NA          aviation, transportation      
#5 justice        NA          NA          justice                       
#6 slavery        economic    humanrights economic, humanrights, slavery