आर में नए वेरिएबल बनाने के लिए म्यूटेट का उपयोग कैसे करें


यह ट्यूटोरियल बताता है कि डेटा फ़्रेम में नए वेरिएबल जोड़ने के लिए R में mutate() फ़ंक्शन का उपयोग कैसे करें।

आर में नए वेरिएबल जोड़ना

डेटा फ़्रेम में नए वेरिएबल जोड़ने के लिए निम्नलिखित dplyr लाइब्रेरी फ़ंक्शंस का उपयोग किया जा सकता है:

mutate() – मौजूदा वेरिएबल्स को संरक्षित करते हुए डेटा फ्रेम में नए वेरिएबल्स जोड़ता है

ट्रांसम्यूट () – डेटा फ्रेम में नए वेरिएबल जोड़ता है और मौजूदा वेरिएबल्स को हटा देता है

mutate_all() – डेटा फ्रेम में सभी वेरिएबल्स को एक साथ संशोधित करता है

mutate_at() – विशिष्ट चर को नाम से संशोधित करता है

mutate_if() – एक निश्चित शर्त को पूरा करने वाले सभी चर को संशोधित करता है

उत्परिवर्तित()

म्यूटेट() फ़ंक्शन सभी मौजूदा वेरिएबल्स को संरक्षित करते हुए डेटा फ़्रेम में नए वेरिएबल जोड़ता है। mutate() का मूल सिंटैक्स है:

 data <- mutate (new_variable = existing_variable/3)
  • डेटा: नया डेटा ब्लॉक जिसमें नए वेरिएबल निर्दिष्ट करने हैं
  • new_variable: नए वेरिएबल का नाम
  • मौजूदा_वेरिएबल: डेटा फ़्रेम में मौजूदा वेरिएबल जिस पर आप नया वेरिएबल बनाने के लिए एक ऑपरेशन करना चाहते हैं

उदाहरण के लिए, निम्नलिखित कोड दर्शाता है कि एम्बेडेड आईरिस डेटासेट में एक नया root_sepal_width वैरिएबल कैसे जोड़ा जाए:

 #define data frame as the first six lines of the iris dataset
data <- head(iris)

#view data
data

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#load dplyr library
library(dplyr)

#define new column root_sepal_width as the square root of the Sepal.Width variable
data %>% mutate (root_sepal_width = sqrt(Sepal.Width))

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species root_sepal_width
#1 5.1 3.5 1.4 0.2 setosa 1.870829
#2 4.9 3.0 1.4 0.2 setosa 1.732051
#3 4.7 3.2 1.3 0.2 setosa 1.788854
#4 4.6 3.1 1.5 0.2 setosa 1.760682
#5 5.0 3.6 1.4 0.2 setosa 1.897367
#6 5.4 3.9 1.7 0.4 setosa 1.974842

ट्रांसम्यूट()

ट्रांसम्यूट() फ़ंक्शन डेटा फ़्रेम में नए वेरिएबल जोड़ता है और मौजूदा वेरिएबल्स को हटा देता है। निम्नलिखित कोड दर्शाता है कि डेटासेट में दो नए वेरिएबल कैसे जोड़ें और सभी मौजूदा वेरिएबल कैसे हटाएं:

 #define data frame as the first six lines of the iris dataset
data <- head(iris)

#viewdata
data

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#define two new variables and remove all existing variables
data %>% transmute (root_sepal_width = sqrt(Sepal.Width),
                   root_petal_width = sqrt(Petal.Width))

# root_sepal_width root_petal_width
#1 1.870829 0.4472136
#2 1.732051 0.4472136
#3 1.788854 0.4472136
#4 1.760682 0.4472136
#5 1.897367 0.4472136
#6 1.974842 0.6324555

mutate_all()

mutate_all() फ़ंक्शन डेटा फ़्रेम में सभी वेरिएबल्स को एक साथ संशोधित करता है, जिससे आप funs() फ़ंक्शन का उपयोग करके सभी वेरिएबल्स पर एक विशिष्ट फ़ंक्शन निष्पादित कर सकते हैं। निम्नलिखित कोड दर्शाता है कि mutate_all() का उपयोग करके डेटा फ़्रेम में सभी कॉलम को 10 से कैसे विभाजित किया जाए:

 #define new data frame as the first six rows of iris without the Species variable
data2 <- head(iris) %>% select(-Species)

#view the new data frame
data2

# Sepal.Length Sepal.Width Petal.Length Petal.Width
#1 5.1 3.5 1.4 0.2
#2 4.9 3.0 1.4 0.2
#3 4.7 3.2 1.3 0.2
#4 4.6 3.1 1.5 0.2
#5 5.0 3.6 1.4 0.2
#6 5.4 3.9 1.7 0.4

#divide all variables in the data frame by 10
data2 %>% mutate_all (funs(./10))

# Sepal.Length Sepal.Width Petal.Length Petal.Width
#1 0.51 0.35 0.14 0.02
#2 0.49 0.30 0.14 0.02
#3 0.47 0.32 0.13 0.02
#4 0.46 0.31 0.15 0.02
#5 0.50 0.36 0.14 0.02
#6 0.54 0.39 0.17 0.04

ध्यान दें कि पुराने वेरिएबल नाम में जोड़ने के लिए एक नया नाम निर्दिष्ट करके डेटा फ़्रेम में अतिरिक्त वेरिएबल जोड़े जा सकते हैं:

 data2 %>% mutate_all (funs(mod = ./10))

# Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length_mod
#1 5.1 3.5 1.4 0.2 0.51
#2 4.9 3.0 1.4 0.2 0.49
#3 4.7 3.2 1.3 0.2 0.47
#4 4.6 3.1 1.5 0.2 0.46
#5 5.0 3.6 1.4 0.2 0.50
#6 5.4 3.9 1.7 0.4 0.54
# Sepal.Width_mod Petal.Length_mod Petal.Width_mod
#1 0.35 0.14 0.02
#2 0.30 0.14 0.02
#3 0.32 0.13 0.02
#4 0.31 0.15 0.02
#5 0.36 0.14 0.02
#6 0.39 0.17 0.04

mutate_at()

mutate_at() फ़ंक्शन विशिष्ट चर को नाम से संशोधित करता है। निम्नलिखित कोड दर्शाता है कि mutate_at() का उपयोग करके दो विशिष्ट चरों को 10 से कैसे विभाजित किया जाए:

 data2 %>% mutate_at (c("Sepal.Length", "Sepal.Width"), funs(mod = ./10))

# Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length_mod
#1 5.1 3.5 1.4 0.2 0.51
#2 4.9 3.0 1.4 0.2 0.49
#3 4.7 3.2 1.3 0.2 0.47
#4 4.6 3.1 1.5 0.2 0.46
#5 5.0 3.6 1.4 0.2 0.50
#6 5.4 3.9 1.7 0.4 0.54
# Sepal.Width_mod
#1 0.35
#2 0.30
#3 0.32
#4 0.31
#5 0.36
#6 0.39

mutate_if()

mutate_if() फ़ंक्शन एक निश्चित शर्त को पूरा करने वाले सभी वेरिएबल को संशोधित करता है। निम्नलिखित कोड दिखाता है कि टाइप फैक्टर के किसी भी वेरिएबल को टाइप कैरेक्टर में बदलने के लिए mutate_if() फ़ंक्शन का उपयोग कैसे करें:

 #find variable type of each variable in a data frame
data <- head(iris)
sapply(data, class)

#Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
# "numeric" "numeric" "numeric" "numeric" "factor" 

#convert any variable of type factor to type character
new_data <- data %>% mutate_if(is.factor, as.character)
sapply(new_data, class)

#Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
# "numeric" "numeric" "numeric" "numeric" "character"

निम्नलिखित कोड दर्शाता है कि सभी संख्यात्मक चरों को एक दशमलव स्थान पर पूर्णांकित करने के लिए mutate_if() फ़ंक्शन का उपयोग कैसे करें:

 #define data as first six rows of iris dataset
data <- head(iris)

#view data
data

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#round any variables of type numeric to one decimal place
data %>% mutate_if(is.numeric, round, digits = 0)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5 4 1 0 setosa
#2 5 3 1 0 setosa
#3 5 3 1 0 setosa
#4 5 3 2 0 setosa
#5 5 4 1 0 setosa
#6 5 4 2 0 setosa

अग्रिम पठन:
आर में अप्लाई(), लैप्पली(), सैप्लाई() और टैपप्लाई() के लिए एक गाइड
आर में लाइनों को कैसे व्यवस्थित करें?
आर में पंक्तियों को कैसे फ़िल्टर करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *