如何在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