R - 将负号从一列复制到另一列
R - Copy negative sign from one to another column
我有一个数据框 (df_ann),如下所示:
Cha
Seg_value
Seg_value2
AXL2
-0.654
2.965
PTT1
1.957
1.84
AXL2
2.654
0.989
PTT1
-1.038
0.85
如果 Seg_value
列中存在负号,我想在 Seg_value2
列中添加负号。
输出应该是:
Cha
Seg_value
Seg_value2
AXL2
-0.654
-2.965
PTT1
1.957
1.84
AXL2
2.654
0.989
PTT1
-1.038
-0.85
我已经搜索了问题的解决方案,但没有找到答案。任何事情都会有所帮助。
提前致谢!
我们可以乘以 'Seg_value'
的 sign
df_ann$Seg_value2 <- with(df_ann, sign(Seg_value) * Seg_value2)
-输出
df_ann
Cha Seg_value Seg_value2
1 AXL2 -0.654 -2.965
2 PTT1 1.957 1.840
3 AXL2 2.654 0.989
4 PTT1 -1.038 -0.850
数据
df_ann <- structure(list(Cha = c("AXL2", "PTT1", "AXL2", "PTT1"), Seg_value = c(-0.654,
1.957, 2.654, -1.038), Seg_value2 = c(2.965, 1.84, 0.989, 0.85
)), class = "data.frame", row.names = c(NA, -4L))
另一个基础 R 选项(但如果 0
在 Seg_value
中则不适用)
transform(
df,
Seg_value2 = Seg_value2 * Seg_value / abs(Seg_value)
)
我有一个数据框 (df_ann),如下所示:
Cha | Seg_value | Seg_value2 |
---|---|---|
AXL2 | -0.654 | 2.965 |
PTT1 | 1.957 | 1.84 |
AXL2 | 2.654 | 0.989 |
PTT1 | -1.038 | 0.85 |
如果 Seg_value
列中存在负号,我想在 Seg_value2
列中添加负号。
输出应该是:
Cha | Seg_value | Seg_value2 |
---|---|---|
AXL2 | -0.654 | -2.965 |
PTT1 | 1.957 | 1.84 |
AXL2 | 2.654 | 0.989 |
PTT1 | -1.038 | -0.85 |
我已经搜索了问题的解决方案,但没有找到答案。任何事情都会有所帮助。
提前致谢!
我们可以乘以 'Seg_value'
的sign
df_ann$Seg_value2 <- with(df_ann, sign(Seg_value) * Seg_value2)
-输出
df_ann
Cha Seg_value Seg_value2
1 AXL2 -0.654 -2.965
2 PTT1 1.957 1.840
3 AXL2 2.654 0.989
4 PTT1 -1.038 -0.850
数据
df_ann <- structure(list(Cha = c("AXL2", "PTT1", "AXL2", "PTT1"), Seg_value = c(-0.654,
1.957, 2.654, -1.038), Seg_value2 = c(2.965, 1.84, 0.989, 0.85
)), class = "data.frame", row.names = c(NA, -4L))
另一个基础 R 选项(但如果 0
在 Seg_value
中则不适用)
transform(
df,
Seg_value2 = Seg_value2 * Seg_value / abs(Seg_value)
)