📜  使用 R 替换数据框列中的值

📅  最后修改于: 2022-05-13 01:55:11.650000             🧑  作者: Mango

使用 R 替换数据框列中的值

在本文中,我们将讨论如何在 R 编程语言中替换 DataFrame 列中的值。

每当我们处理一些数据时,我们有必要从中得出准确的结论。现在想象一下,如果我们的数据中有一些缺失值(当数据框的列中缺少某些观察值或包含字符值而不是数值时会发生这种情况),或者假设有一些负值数据集,这可能会导致错误的准确性,也会影响分析结果。因此,为了避免这些,我们可以使用以下方法替换这些值。

示例 1. 用零 (0) 替换数据框中的 NA 值

首先,我们创建一个包含列名的表:Name、ID、CPI 并将相应的值添加到相应的列中

R
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)


R
details[is.na(details)] <- 0
  
# views the newly modified table
View(details)


R
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)


R
ex <- secR1
ex
  
# replacing the NA value with the mean value
ex$RollNo[is.na(ex$RollNo)]<-mean(ex$RollNo, na.rm = T)
round(ex, digits = 0)


R
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)


R
secR1[secR1 < 0] <- 0     
view(secR1)


R
# 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)


输出:

将值从 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
ex$RollNo[is.na(ex$RollNo)]<-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()函数用值中给出的列表中给出的索引替换 x 中的值。如有必要,会回收 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)

输出:

最终输出