如果 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 x31 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 y31 -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 y31 -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