R语言 替换数据框列中的值
在这篇文章中,我们将讨论如何在R编程语言中替换数据框架列的值。
每当我们处理一些数据时,我们有必要从中得出准确的结论。现在想象一下,如果我们的数据中有一些缺失的值(这发生在数据框架的某一列中缺少一些观察值,或者包含一个字符值而不是一个数值),或者说数据集中有一些负值,这可能导致错误的准确性,也会影响分析结果。因此,为了避免这些,我们可以使用以下方法替换这些值。
例1.用 “0 “替换数据框中的 “NA “值
首先,我们用列名创建一个表。名称、ID、CPI,并在各列中添加各自的值
Name <- c("Amy", "Celine", "Lily",
"Irene", "Rosy", "Tom", "Kite")
ID <- c(123, NA, 134, NA, 166, 129, 178)
CPI <- c(8.5, 8.3, 7.8, NA, 6.9, 9.1, 5.6)
details <- data.frame(Name, ID, CPI)
View(details)
输出
将数值从NA值替换为0 。
details[is.na(details)] <- 0
# views the newly modified table
View(details)
输出
例2.用均值替换数据框中的NA值
我们用下面的列和值创建一个表,和前面解释的一样。
RollNo <- c(24,23,NA,18)
ID <- c(123, 156, 134, 148)
CPI <- c(8.5,8.3,7.8,NA)
secR1 <- data.frame(RollNo,ID,CPI)
View(secR1)
输出
表
现在将NA值替换为平均值
ex <- secR1
ex
# replacing the NA value with the mean value
exRollNo[is.na(exRollNo)]<-mean(ex$RollNo, na.rm = T)
round(ex, digits = 0)
输出
输出 -> 卷号中的NA,用平均值代替。
例3.用0s(零)替换负值
首先,我们创建一个表,就像我们之前做的那样。
RollNo <- c(24,23,16,-18)
ID <- c(123,156,-134,148)
CPI <- c(8.5,8.3,7.8,8.9)
marks <- c(-54,70,-20,9)
secR1 <- data.frame(RollNo,ID,CPI,marks)
View(secR1)
输出
现在将负值改为0
secR1[secR1 < 0] <- 0
view(secR1)
输出
例4.使用replace()方法
replace() 函数,用values中给定的索引替换x中的值。如果有必要,value中的值会被回收。
语法: replace(x, list, values)
参数
- x: 向量
- list: 一个索引向量
- values: 替换值
例子
# creates a table
RollNo <- c(24,23,NA,18)
ID <- c(123, 156, 134, 148)
CPI <- c(8.5,8.3,7.8,NA)
secR1 <- data.frame(RollNo,ID,CPI)
View(secR1)
# 2nd element of the list, hence 2, replacement value is 45
secR1<- replace(RollNo, 2, 45)
View(secR1)
输出
最终产出