如果 R 数据框中的所有值大于某个值,则替换它们。

如果要替换 R 数据框中的所有大于某个值的值,我们可以使用带有 ifelse 函数的 apply 函数。

例如,如果我们有一个名为 df 的数据框,并且如果它们大于 10,我们想用 5 替换 df 中的所有值,那么我们可以使用下面给出的命令 -

df[]<-apply(df,2,function(x) ifelse(x0,1,x))

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,1)

x2<-rpois(20,1)

x3<-rpois(20,1)

df1<-data.frame(x1,x2,x3)

df1

创建了以下数据框

 x1 x2 x3

 1 1 0 1

 2 1 0 0

 3 1 1 0

 4 2 1 1

 5 0 0 0

 6 0 0 0

 7 1 2 1

 8 2 0 0

 9 1 0 2

10 0 1 1

11 3 1 0

12 0 1 1

13 3 0 0

14 2 0 1

15 0 1 2

16 1 0 1

17 0 3 1

18 0 0 1

19 1 2 1

20 0 1 1

要将 df1 中的所有值替换为 1,如果它们在上面创建的数据框中大于 0,请将以下代码添加到上面的代码段中 -

x1<-rpois(20,1)

x2<-rpois(20,1)

x3<-rpois(20,1)

df1<-data.frame(x1,x2,x3)

df1[]<-apply(df1,2,function(x) ifelse(x0,1,x))

df1

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

    x1 x2 x3

 [1,] 1 0 1

 [2,] 1 0 0

 [3,] 1 1 0

 [4,] 1 1 1

 [5,] 0 0 0

 [6,] 0 0 0

 [7,] 1 1 1

 [8,] 1 0 0

 [9,] 1 0 1

[10,] 0 1 1

[11,] 1 1 0

[12,] 0 1 1

[13,] 1 0 0

[14,] 1 0 1

[15,] 0 1 1

[16,] 1 0 1

[17,] 0 1 1

[18,] 0 0 1

[19,] 1 1 1

[20,] 0 1 1

示例 2

以下代码段创建了一个示例数据框 -

y1<-round(rnorm(20),1)

y2<-round(rnorm(20),1)

y3<-round(rnorm(20),1)

df2<-data.frame(y1,y2,y3)

df2

创建了以下数据框

     y1   y2   y3

 1 -0.9 -0.2 -1.0

 2  0.8  0.0  0.0

 3 -0.2  0.6 -1.2

 4 -0.5  0.5  1.2

 5  1.1  1.2  1.2

 6 0.2  -1.2  0.4

 7 -2.2 -0.4  1.6

 8 -0.7  0.0 -0.2

 9 -0.4  1.1 -1.7

10  0.0 -1.0  0.6

11  0.1 -1.3 -0.1

12  0.7  0.0 -2.2

13  0.8 -0.1  0.5

14 -1.1 -0.3 -1.2

15 -0.4  1.3 -0.5

16  1.7  0.0 -0.3

17 -0.4 -2.4 -0.9

18 -0.5  2.1  0.6

19  0.2  1.1 -1.7

20 -0.3  0.1 -0.7

要将 df2 中的所有值替换为 0.5,如果它们在上面创建的数据框中大于 0.1,请将以下代码添加到上面的代码段中 -

y1<-round(rnorm(20),1)

y2<-round(rnorm(20),1)

y3<-round(rnorm(20),1)

df2<-data.frame(y1,y2,y3)

df2[]<-apply(df2,2,function(x) ifelse(x0.1,0.5,x))

df2

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     y1    y2  y3

 1 -0.9 -0.2 -1.0

 2  0.5  0.0  0.0

 3 -0.2  0.5 -1.2

 4 -0.5  0.5  0.5

 5  0.5  0.5  0.5

 6  0.5 -1.2  0.5

 7 -2.2 -0.4  0.5

 8 -0.7  0.0 -0.2

 9 -0.4  0.5 -1.7

10  0.0 -1.0  0.5

11  0.1 -1.3 -0.1

12  0.5  0.0 -2.2

13  0.5 -0.1  0.5

14 -1.1 -0.3 -1.2

15 -0.4  0.5 -0.5

16  0.5  0.0 -0.3

17 -0.4 -2.4 -0.9

18 -0.5  0.5  0.5

19  0.5  0.5 -1.7

20 -0.3  0.1 -0.7

以上是 如果 R 数据框中的所有值大于某个值,则替换它们。 的全部内容, 来源链接: utcz.com/z/356630.html

回到顶部