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

阅读 1840 收藏 0 点赞 0 评论 0

如果要替换 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

评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号