r - How to create a string from row values in a dataframe ignoring NAs -


यह मेरा डेटाफ़्रेम है:

  x1 & lt; -c ("a", " सी ("बी", "डी", "एच") - सी ("बी", "सी", "जी", "के") x3 और एलटी; - c ("बी", "डी", "एच" , एनए) x4 और एलटी; - c ("ए", "ई", "आई", एनए) डीएफ & एलटी; - डेटा.फ्रेम (एक्स 1, एक्स 2, एक्स 3, एक्स 4, स्ट्रिंग्सएएफएक्टर्स = एफ) डीएफ x 1 एक्स 2 एक्स 3 एक्स 4 1 एबा 2 सीसीडी 3 एफजी 4 जेके & लेफ्टिनेंट; एनए & gt; & LT; एनए & gt;  

का उपयोग करना

  लागू करें (डीएफ, 1, पेस्ट, पतन = "_")  

मुझे < मैं एनएएस की अनदेखी करना चाहूंगा ताकि अंतिम परिणामी तत्व को " J_k "के बजाय" j_k_NA_NA "।

आपके समर्थन के लिए बहुत बहुत धन्यवाद।

रामी

अपने कोड का उपयोग,

  लागू करें (डीएफ, 1, फ़ंक्शन (x) पेस्ट (na.omit (x), पतन =" _ ")) # [1] "a_b_b_a" "c_c_d_e" "f_g_h_i" "j_k"  

एक और विकल्प होगा

  df [is.na (df)] & Lt; - '' gsub ("^ _ + | _ + $ _" _ "_" _ $ $ "," ", do.call (पेस्ट, सी (डीएफ, सेप =" _ "))) # [1]" a_b_b_a "" c_c_d_e "" f_g_h_i "" J_k " 

संपादित करें

यदि आंतरिक एनएएस हैं, तो शायद यह काम करता है

  gsub (" ^ _ + | _  

या आधारित डेविड एरबेरबर्ग की टिप्पणियों पर

  gsub ("NA_ | _NA", "", लागू (डीएफ, 1, पेस्ट, उदाहरण के लिए  
  v1 & lt; - c (एनए, 'ए', 'बी', एनए, एनए, एनए, 'सी', एनए, डी ', एनए) v1 [is.na (v1)] & lt; -' 'gsub ("^ _ + | _ + $ | _ + (? = _)", "" , पेस्ट (v1, collapse = "_"), perl = TRUE) # [1] "a_b_c_d"  

Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -