NA मानों को बदलने के बारे में बहुत सारे पद हैं। मुझे पता है कि एक व्यक्ति निम्नलिखित तालिका / फ्रेम में NA को प्रतिस्थापित कर सकता है:
x[is.na(x)]<-0
लेकिन, क्या होगा अगर मैं इसे केवल कुछ स्तंभों तक सीमित करना चाहता हूं? आइए मैं आपको एक उदाहरण दिखाता हूं।
सबसे पहले, एक डाटासेट से शुरू करते हैं।
set.seed(1234)
x <- data.frame(a=sample(c(1,2,NA), 10, replace=T),
b=sample(c(1,2,NA), 10, replace=T),
c=sample(c(1:5,NA), 10, replace=T))
जो देता है:
a b c
1 1 NA 2
2 2 2 2
3 2 1 1
4 2 NA 1
5 NA 1 2
6 2 NA 5
7 1 1 4
8 1 1 NA
9 2 1 5
10 2 1 1
ठीक है, इसलिए मैं केवल कॉलम 'ए' और 'बी' के प्रतिस्थापन को प्रतिबंधित करना चाहता हूं। मेरा प्रयास था:
x[is.na(x), 1:2]<-0
तथा:
x[is.na(x[1:2])]<-0
जो काम न करे।
मेरा डेटाटेबल प्रयास, जहाँ y<-data.table(x)
, स्पष्ट रूप से कभी काम नहीं करने वाला था:
y[is.na(y[,list(a,b)]), ]
मैं is.na तर्क के अंदर कॉलम पास करना चाहता हूं लेकिन यह स्पष्ट रूप से काम नहीं करेगा।
मैं एक data.frame और एक data.table में ऐसा करना चाहूंगा। मेरा अंतिम लक्ष्य 'c' को '' a 'और' b 'के तरीके से 1: 2: 0 से 1: 1 में रखना है, क्योंकि यह एक तार्किक चर नहीं है। मेरे पास कॉलम का एक गुच्छा है, इसलिए मैं इसे एक-एक करके नहीं करना चाहता। और, मैं यह जानना चाहूंगा कि यह कैसे करना है।
क्या तुम्हारे पास कोई सुझाव है?