如何在R中使用replace()替换值

时间:2020-02-23 14:43:54  来源:igfitidea点击:

由于R中的replace()可以替换值,因此替换值非常容易。

在数据分析中,可能有很多情况下您必须处理数据集中存在的缺失值,负值或者不准确的值。
这些值也可能会影响分析结果。

因此,为了避免这些情况和错误的准确性,可以使用R中的replace()函数将错误的值替换为适当的值。

R中replace()的语法

R语法中的replace()函数非常简单且易于实现。
它包括向量,索引向量和替换值,如下所示。

替换(x,列表,值)

  • x = vactor具有一些值
  • list =这可以是索引向量
  • 值=替换值

替换向量中存在的值

本节将说明如何替换向量中的值。
同样执行以下代码。

在以下情况下,您可以清楚地观察和理解replace()函数的语法。
第一个值是向量名称,后跟该值的索引,最后是替换值。

df<- c('apple', 'orange','grape','banana')
df

"apple"  "orange"  "grape"  "banana"

让我们替换列表中的第二项。

dy<-replace(df, 2,'blueberry')
dy

"apple"  "blueberry"  "grape"  "banana"

现在,我们将替换列表中的第四项

dx<-replace(dy, 4, 'cranberry')
dx

"apple"  "blueberry"  "grape"  "cranberry"

使用R中的replace()将NA值替换为0

好了,在本节中,我们将用数据帧中存在的NA值替换为0。
这是具有NA值的输入数据帧。

如下所示,借助单个代码完成将NA值替换为0。

#defines the data frame
df<-airquality

#replaces the NA values with 0
df[is.na(df)]<-0
df

将NA值替换为平均值

在数据分析过程中,有时仅为了一个或者多个NA值而消除整个行或者一列并不是一个好主意。
您根本无法消除大多数值,因为这可能会导致准确性和结果下降。

为了克服这种情况,NA值被其余值的平均值代替。
事实证明,此方法对于产生良好的精度而不丢失任何数据至关重要。

具有NA值的输入数据集如下所示。

df<-airquality
df
df$Ozone[is.na(df$Ozone)]<-mean(df$Ozone, na.rm = T)
round(df, digits = 0)

下图显示了将NA值替换为Ozone列中平均值的Ozone列。

用NA和0值替换数据框中的负值

本部分将向您展示如何用0和NA替换数据框中的负值。

这样做是为了避免结果的负面趋势。
数据集中存在的负值会误导分析并产生错误的准确性。

下面的代码将说明相同的情况。

#reads the csv file
df<-read.csv('negetivevalues.csv')
df

#replaces the negetive numbers with zeros
data<-replace(df$entry2, df$entry2<0,0) 
data

Output=> 0 654 345 876  34  98   0  98  67   0  45 761

#replaces the negetive values with NA's
data1<-replace(df$entry2,df$entry2<0,NA)
data1

Output=>  NA 654 345 876  34  98  NA  98  67  NA  45 761