如何根据R中的条件创建具有两列比率的列?
要根据 R 数据框中的条件创建具有两列比率的新列,我们可以使用带有 ifelse 函数的除法符号。
例如,如果我们有一个名为 df 的数据框,其中包含两列 X 和 Y,并且我们想根据 X 大于 5 的条件创建一个具有 X 和 Y 比率的新列,那么我们可以使用下面给出的命令 -
df$Ratio_X_Y<-with(df,ifelse(X>5,X/Y,NA))
示例 1
以下代码段创建了一个示例数据框 -
x1<-rpois(20,2)输出结果x2<-rpois(20,2)
df1<-data.frame(x1,x2)
df1
创建以下数据框 -
x1 x21 0 0
2 2 6
3 3 1
4 3 0
5 4 2
6 2 1
7 3 2
8 3 3
9 2 0
10 3 3
11 0 5
12 2 1
13 4 1
14 2 1
15 4 0
16 1 2
17 1 2
18 3 2
19 6 4
20 1 0
为了在 x1 小于 4 时找到 x1 和 x2 的比率,否则返回 NA,将以下代码添加到上面的代码片段中 -
df1$Ratio_x1_x2<-with(df1,ifelse(x1<4,x1/x2,NA))输出结果df1
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x1 x2 Ratio_x1_x21 0 0 NaN
2 2 6 0.3333333
3 3 1 3.0000000
4 3 0 Inf
5 4 2 NA
6 2 1 2.0000000
7 3 2 1.5000000
8 3 3 1.0000000
9 2 0 Inf
10 3 3 1.0000000
11 0 5 0.0000000
12 2 1 2.0000000
13 4 1 NA
14 2 1 2.0000000
15 4 0 NA
16 1 2 0.5000000
17 1 2 0.5000000
18 3 2 1.5000000
19 6 4 NA
20 1 0 Inf
示例 2
以下代码段创建了一个示例数据框 -
y1<-sample(0:9,20,replace=TRUE)输出结果y2<-sample(0:9,20,replace=TRUE)
df2<-data.frame(y1,y2)
df2
创建以下数据框 -
y1 y21 6 7
2 2 2
3 9 1
4 2 2
5 0 0
6 6 1
7 5 1
8 3 7
9 4 9
10 6 3
11 2 8
12 1 6
13 7 7
14 3 2
15 5 5
16 9 5
17 6 7
18 5 0
19 0 1
20 5 4
为了在 y1 小于 5 时找到 y1 和 y2 的比率,否则返回 NA,将以下代码添加到上面的代码片段中 -
df2$Ratio_y1_y2<-with(df2,ifelse(y1<5,y1/y2,NA))输出结果df2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
y1 y2 Ratio_y1_y21 6 7 NA
2 2 2 1.0000000
3 9 1 NA
4 2 2 1.0000000
5 0 0 NaN
6 6 1 NA
7 5 1 NA
8 3 7 0.4285714
9 4 9 0.4444444
10 6 3 NA
11 2 8 0.2500000
12 1 6 0.1666667
13 7 7 NA
14 3 2 1.5000000
15 5 5 NA
16 9 5 NA
17 6 7 NA
18 5 0 NA
19 0 1 0.0000000
20 5 4 NA
以上是 如何根据R中的条件创建具有两列比率的列? 的全部内容, 来源链接: utcz.com/z/317236.html