मेरी जानकारी :

    # A tibble: 6 x 4
  X__1            X__6                                                     X__7     X__8        
  <chr>           <chr>                                                    <chr>    <chr>       
1 Emp #:          xxyy                                                    Departm~ Corporate S~
2 Reason of Resi~ I think below are areas of improvement within my team C~ NA       NA          
3 Emp #:          xyyy                                                    Departm~ Corporate S~
4 Reason of Resi~ better oppurtunity                                       NA       NA          

मैं डेटा को निम्न प्रारूप में बदलना चाहता हूं:

Emp #     Reason                                                 Department
10282     I think below are areas of improvement within my team  Corporate
10308     better oppurtunity                                     Corporate

डेटा पुन: प्रस्तुत करें

structure(list(X__1 = c("Emp #:", "Reason of Resignation:", "Emp #:", 
"Reason of Resignation:", "Emp #:", "Reason of Resignation:", 
"Emp #:", "Reason of Resignation:", "Emp #:", "Reason of Resignation:"
), X__6 = c("10282", "I think below are areas of improvement within my team CS / SME or my be cross the organization on my level (L1-L2). Lack of career growth specially in my department i.e. CS HOD/RSM/TLs/KAMs are on same position from last 5 years. Many people are here on same position from last 10-12 years. lack in focus on low level staff (L1 / L2) in terms of capacity building and career growth i.e. not a single training for my team on it. No rotation plans (for capacity building) for CS i.e. not a single team member rotated since I joined. Better opportunity in terms of career and financials outside ", 
"10308", "better oppurtunity", "11230", "Moving on another organization for career persuade", 
"13370", "Get a new job outside the company.", "14694", "Health Issues"
), X__7 = c("Department:", NA, "Department:", NA, "Department:", 
NA, "Department:", NA, "Department:", NA), X__8 = c("Corporate Solutions", 
NA, "Corporate Solutions", NA, "Region Central A", NA, "Region North", 
NA, "Finance Operations", NA)), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))

थोड़ा और विस्तार।

Emp# में X__1 पहले कॉलम हेडर में जाएगा जिसका मूल्य X__6 से होगा और इसी तरह।

3
Rana Usman 10 अक्टूबर 2018, 09:45

2 जवाब

सबसे बढ़िया उत्तर

मैंने rid नामक एक नया कॉलम जोड़ा, जो पंक्तियों के जोड़े को समूहीकृत करता है, फिर आवश्यक कॉलम को फ़िल्टर करता है और left_join() उन्हें उनके rid द्वारा एक साथ वापस लाता है।

library(dplyr)

df <- mutate(df, rid = lapply(1:(nrow(df)/2), function(x) rep(x, 2)) %>% unlist())

left_join(
  df %>%
    filter(X__1 == "Emp #:") %>%
    select(rid, X__6) %>%
    rename("Emp #" = "X__6"),
  df %>%
    filter(X__1 == "Reason of Resignation:") %>%
    select(rid, X__6) %>%
    rename("Reason" = "X__6"),
  by = "rid") %>%
  left_join(df %>%
              filter(X__7 == "Department:") %>%
              select(rid, X__8) %>%
              rename("Department" = "X__8"),
            by = "rid") %>%
  select(-rid)

#  `Emp #` Reason                                                    Department     
#   <chr>   <chr>                                                     <chr>          
# 1 10282   I think below are areas of improvement within my team CS~ Corporate Solu~
# 2 10308   better oppurtunity                                        Corporate Solu~
# 3 11230   Moving on another organization for career persuade        Region Central~
# 4 13370   Get a new job outside the company.                        Region North   
# 5 14694   Health Issues                                             Finance Operat~
1
Paul 10 अक्टूबर 2018, 10:09

यह देखते हुए कि आपका प्रारूप सख्ती से वही है जो आप दिखाते हैं, एक और (थोड़ा ओवरफिट) विचार हो सकता है,

d1 <- df[c(TRUE, FALSE),]
d2 <- df[c(FALSE, TRUE),]

setNames(data.frame(d1[2], d1[4], d2[2]), c(d1[1,1], d1[1,3], d2[1,1]))

जो देता है,

   Emp #:         Department:                                                       Reason of Resignation:
1  10282 Corporate Solutions I think below are areas of improvement within my team CS / SMEs outside JAZZ
2  10308 Corporate Solutions                                                           better oppurtunity
3  11230    Region Central A                           Moving on another organization for career persuade
4  13370        Region North                                           Get a new job outside the company.
5  14694  Finance Operations                                                                Health Issues
0
Sotos 10 अक्टूबर 2018, 10:19