अग्रिम क्षमा याचना अगर यह पहले से ही कहीं और पूछा जा चुका है, लेकिन मैंने अलग-अलग प्रयासों की कोशिश की है और अब तक कुछ भी काम नहीं किया है।

मेरे पास एक डेटा फ़्रेम Data है जिसमें वायु प्रदूषण का माप है। कॉलम "मापन। यूनिट" और "अनिश्चितता। यूनिट" दिखाते हैं कि अधिकांश माप "मोल/एल" में व्यक्त किए जाते हैं लेकिन उनमें से कुछ व्यक्त किए जाते हैं "मोल/एमएल।

head(Data)
     Locality.Name  Chemical  Concentration  Measuring.Unit Uncertainty Uncertainty.Unit 
1        xxxx       NH3       0.065          mol/L         0.010          mol/L  
2        xxxx       CO        0.015          mol/L         0.004          mol/L
3        xxxx       CO2       0.056          mol/L         0.006          mol/L
4        xxxx       O3        0.67           mol/mL        0.010          mol/mL
5        xxxx       H2SO4     0.007          mol/L         0.0008         mol/L
6        xxxx       NO        0.89           mol/mL        0.08           mol/mL                                       

किसी भी विश्लेषण को शुरू करने से पहले, मैं एक साधारण फ़ंक्शन का उपयोग करके mol/mL में mol/mL में व्यक्त प्रत्येक मान को बदलना चाहता हूं और निश्चित रूप से, संबंधित वर्ण "mol/mL" को "mol/L" में बदलना चाहता हूं। यह कुछ इस तरह होना चाहिए (लेकिन मुझे लगता है कि dplyr या tidyverse का उपयोग करने के बहुत आसान तरीके हैं) :

# First step
      if (Data$Measuring.Unit == "mol/mL")  {Data$Concentration <- Data$Concentration * 1000 } 
       else {Data$Concentration <- Data$Concentration } 

       if (Data$Uncertainty.Unit == "mol/mL")  {Data$Uncertainty <- Data$Uncertainty * 1000 } 
       else {Data$Uncertainty <- Data$Uncertainty} 

# Second step
Data$Measuring.Unit[Data$Measuring.Unit == 'mol/mL'] <- 'mol/L'
Data$Uncertainty.Unit[Data$Uncertainty.Unit == 'mol/mL'] <- 'mol/L'
0
Sylvain 1 जुलाई 2020, 20:44

1 उत्तर

सबसे बढ़िया उत्तर

तुम कोशिश कर सकते हो:

Data$Concentration <- ifelse(Data$Measuring.Unit == "mol/mL",Data$Concentration * 1000,Data$Concentration)

Data$Uncertainty <- ifelse(Data$Uncertainty.Unit == "mol/mL",Data$Uncertainty * 1000,Data$Uncertainty)

यह कदम ठीक दिखता है:

Data$Measuring.Unit[Data$Measuring.Unit == 'mol/mL'] <- 'mol/L'
Data$Uncertainty.Unit[Data$Uncertainty.Unit == 'mol/mL'] <- 'mol/L'

if() का उपयोग मानों के लिए किया जाता है जबकि ifelse() को डेटाफ़्रेम के लिए वेक्टरकृत किया जाता है।

1
Duck 1 जुलाई 2020, 20:50