添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

方法3:在数据框的特定列中用NA替换Inf

df[c('col1', 'col2')][sapply(df[c('col1', 'col2')], is.infinite)] <- NA

本教程解释了如何在以下数据框架中实际使用每种方法。

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
  team position points
1    A        G     10
2    A        G     10
3    A        F      8
4    A        F     14
5    B        G     15
6    B        G     15
7    B        F     17
8    B        F     17

例1:用NA替换向量中的Inf

下面的代码显示了如何在一个向量中用NA值替换所有Inf值:

#create vector with some Inf values
x <- c(4, 12, Inf, 8, Inf, 9, 12, 3, 22, Inf)
#replace Inf values with NA
x[is.infinite(x)] <- NA
#view updated vector
 [1]  4 12 NA  8 NA  9 12  3 22 NA

注意,原向量中的所有Inf值都被替换成了NA值。

例2:在数据框的所有列中用NA替换Inf

下面的代码显示了如何在一个数据框的每一列中用NA值替换Inf值:

#create data frame
df <- data.frame(x=c(4, 5, 5, 4, Inf, 8, Inf),
                 y=c(10, Inf, Inf, 3, 5, 5, 8),
                 z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
    x   y   z
1   4  10 Inf
2   5 Inf   5
3   5 Inf   5
4   4   3   6
5 Inf   5   3
6   8   5  12
7 Inf   8  14
#replace Inf values with NA values in all columns
df[sapply(df, is.infinite)] <- NA
#view updated data frame
   x  y  z
1  4 10 NA
2  5 NA  5
3  5 NA  5
4  4  3  6
5 NA  5  3
6  8  5 12
7 NA  8 14

请注意,数据框中每一列的Inf值都被替换成了NA值。

例3:在数据框的特定列中用NA替换Inf

下面的代码显示了如何在数据框的特定列中用NA值替换Inf值:

#create data frame
df <- data.frame(x=c(4, 5, 5, 4, Inf, 8, Inf),
                 y=c(10, Inf, Inf, 3, 5, 5, 8),
                 z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
    x   y   z
1   4  10 Inf
2   5 Inf   5
3   5 Inf   5
4   4   3   6
5 Inf   5   3
6   8   5  12
7 Inf   8  14
#replace Inf values with NA values in columns 'x' and 'z' only
df[c('x', 'z')][sapply(df[c('x', 'z')], is.infinite)] <- NA
#view updated data frame
   x   y  z
1  4  10 NA
2  5 Inf  5
3  5 Inf  5
4  4   3  6
5 NA   5  3
6  8   5 12
7 NA   8 14

注意,'x'和'y'列中的Inf值已经被替换成了NA值。

然而,"y "列中的Inf值却没有变化。

  • 私信
     28,239