【发布时间】:2020-07-01 17:44:29
【问题描述】:
如果已经在其他地方问过这个问题,请提前道歉,但我尝试了不同的尝试,但到目前为止没有任何效果。
我有一个数据框Data,其中包含空气污染的测量值。 “Measuring.Unit”和“Uncertainty.Unit”列显示大部分测量值以“mol/L”表示,但也有一些以“mol/mL”表示。
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/L,当然,还要更改“mol/L”中的相关字符“mol/mL”。这应该是这样的(但我想有很多简单的方法使用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'
【问题讨论】:
标签: r dataframe if-statement