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
Post a Comment