在 R 中,如何使用括号 () 作为分隔符合并两个 data.frame 列?

问题描述 投票:0回答:2

如何合并两列,1) 将第二列放在括号之间或 2) 将 +- 符号作为分隔符?

A <- data.frame(round(replicate(5, runif(10)),2))
A$collated <- paste(A$X1, A$X2, sep = " ")
A

这是我想要的输出:

     X1   X2   X3   X4   X5  collated
1  0.46 0.42 0.47 0.41 0.58 0.46 ± 0.42
2  0.59 0.61 0.26 0.78 0.09 0.59 ± 0.61
3  0.17 0.48 0.18 0.61 0.49 0.17 ± 0.48

或者这个:

     X1   X2   X3   X4   X5  collated
1  0.46 0.42 0.47 0.41 0.58 0.46 (0.42)
2  0.59 0.61 0.26 0.78 0.09 0.59 (0.61)
3  0.17 0.48 0.18 0.61 0.49 0.17 (0.48)

最终,我将使用 kable() 或类似函数来生成表格。

r merge paste
2个回答
3
投票

我们可以使用

sprintf

A$collated <- sprintf("%2.2f ± %2.2f", A$X1, A$X2)
A
#    X1   X2   X3   X4   X5    collated
#1 0.46 0.42 0.47 0.41 0.58 0.46 ± 0.42
#2 0.59 0.61 0.26 0.78 0.09 0.59 ± 0.61
#3 0.17 0.48 0.18 0.61 0.49 0.17 ± 0.48

A$collated <- sprintf("%2.2f (%2.2f)", A$X1, A$X2)
A 
#    X1   X2   X3   X4   X5    collated
#1 0.46 0.42 0.47 0.41 0.58 0.46 (0.42)
#2 0.59 0.61 0.26 0.78 0.09 0.59 (0.61)
#3 0.17 0.48 0.18 0.61 0.49 0.17 (0.48)

数据

A <- structure(list(X1 = c(0.46, 0.59, 0.17), X2 = c(0.42, 0.61, 0.48
 ), X3 = c(0.47, 0.26, 0.18), X4 = c(0.41, 0.78, 0.61), X5 = c(0.58, 
0.09, 0.49)), .Names = c("X1", "X2", "X3", "X4", "X5"), 
class = "data.frame", row.names = c("1", "2", "3"))

0
投票

简单的方法在这里

A$collated <- paste(A$X1,"(", (A$X2),")", sep = " ")
© www.soinside.com 2019 - 2024. All rights reserved.