📜  用 R 中数据帧中的 NA 替换 Inf

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

用 R 中数据帧中的 NA 替换 Inf

在本文中,我们将讨论如何在 R 编程语言中将 Dataframe 中的 Inf (Infinity) 替换为 NA。

创建一个用于演示的数据框:

R
# create a datframe with 3 columns and 5 rows
data=data.frame(column1 = c(Inf, 2, 3, 4, 5),  
                column2 = c(1, Inf, 1, Inf, 1),
                column3 = c(1,2,3,Inf,Inf))
  
# display dataframe
print(data)


R
# create a datframe with 3 columns and 5 rows
data=data.frame(column1 = c(Inf, 2, 3, 4, 5), 
                column2= c(1, Inf, 1, Inf, 1),
                column3=c(1,2,3,Inf,Inf))
  
# actual dataframe
print(data)
  
# replace inf with NA
final=do.call(data.frame, lapply
              (data, function(value) replace
               (value, is.infinite(value),NA)))
  
# display
print(final)


R
# create a datframe with 5 columns and 5 rows
data=data.frame(column1 = c(Inf, 2, 3, 4, 5),
                column2= c(1, Inf, 1, Inf, 1),
                column3=c(1,2,3,Inf,Inf),
                column4=c(Inf,Inf,Inf,3,4),
                column5=c(1,2,3,4,Inf))
  
# actual dataframe
print(data)
  
# replace inf with NA
final=do.call(data.frame,lapply
              (data, function(value) replace
               (value, is.infinite(value),NA)))
  
# display
print(final)


输出:



所以我们可以通过使用 lapply()函数用 NA 替换 Inf,我们必须创建自己的函数来用 NA 替换 Inf,然后通过 do.call 方法将该函数传递给 lapply()。

函数语法:

function(value) 
replace(value, is.infinite(value), 
NA)

其中 value 是输入值,如果它是无限的,则使用 replace() 将值替换为 NA。

示例 1:R 程序将数据帧中的 Inf 值替换为 NA

电阻

# create a datframe with 3 columns and 5 rows
data=data.frame(column1 = c(Inf, 2, 3, 4, 5), 
                column2= c(1, Inf, 1, Inf, 1),
                column3=c(1,2,3,Inf,Inf))
  
# actual dataframe
print(data)
  
# replace inf with NA
final=do.call(data.frame, lapply
              (data, function(value) replace
               (value, is.infinite(value),NA)))
  
# display
print(final)

输出:

示例 2:

电阻

# create a datframe with 5 columns and 5 rows
data=data.frame(column1 = c(Inf, 2, 3, 4, 5),
                column2= c(1, Inf, 1, Inf, 1),
                column3=c(1,2,3,Inf,Inf),
                column4=c(Inf,Inf,Inf,3,4),
                column5=c(1,2,3,4,Inf))
  
# actual dataframe
print(data)
  
# replace inf with NA
final=do.call(data.frame,lapply
              (data, function(value) replace
               (value, is.infinite(value),NA)))
  
# display
print(final)

输出: