/ / स्थिति के साथ एनएएस के साथ संख्याओं को कैसे बदलें - आर, मैट्रिक्स, प्रतिस्थापित, ना

स्थिति के साथ एनएएस के साथ संख्याओं को कैसे बदलें - आर, मैट्रिक्स, प्रतिस्थापित, ना

मेरे पास दो आयाम हैं, एक्स 1 और एक्स 2, समान आयामों के साथ।

एक्स 2 में एनएएस मान हैं।

मैं X2 की समान स्थिति में एक्स 1 में एनएएस मान कैसे डाल सकता हूं (एक्स 1 में मानों को प्रतिस्थापित कर रहा हूं)?

उत्तर:

जवाब के लिए 3 № 1

हम प्रयोग कर सकते हैं replace

replace(X1, is.na(X2), NA)
#     [,1] [,2] [,3]
#[1,]   NA    4    7
#[2,]    2    5    8
#[3,]    3   NA    9

या

X1 * NA^is.na(X2)
#     [,1] [,2] [,3]
#[1,]   NA    4    7
#[2,]    2    5    8
#[3,]    3   NA    9

या टिप्पणियों में उल्लिखित @ रोलैंड के रूप में

is.na(X1) <- is.na(X2)

Btw,

X1 + X2 - X2
#Error in X1 + X2 : non-numeric argument to binary operator

नीचे की तरफ यह है कि मेरे द्वारा पोस्ट किए गए दोनों समाधान सामान्य हैं और गैर-संख्यात्मक मैट्रिक्स के लिए भी काम करते हैं।

डेटा

X1 <- matrix(1:9, 3, 3)
X2 <- matrix(c(NA, "a", "b", "c",  "a", NA, "c","f", "a"), 3, 3)

जवाब के लिए 2 № 2

तुम कर सकते हो

X1[is.na(X2)] <- NA

यदि डेटा पूरी तरह से संख्यात्मक है, तो कोशिश करें

NA + कोई संख्या है NA। आप जोड़ सकते हो X2 और फिर इसे घटाना।

X1 + X2 - X2