简单地说,我想打印1到5的所有组合作为坐标(x,y),并在其旁边打印平均值。
现在我大约一个月左右进入R,这就是我所管理的:
combination <- combn(seq(1:5), 2)
combination <- data.frame(combination)
combination <- rbind(combination, combn(seq(1:5), 2, mean))
mapply(paste, combination[1,], combination[2,], MoreArgs = list(sep = ","), USE.NAMES = FALSE)
所以我有一个包含我需要的所有内容的数据框,但是让我难以理解的是将其打印成:
(1,2)1.5 (1,3)2 等
有人能指出我正确的方向吗?
非常感谢, 克里斯
答案 0 :(得分:1)
这样的东西?
paste( "(", combination[1,], ",", combination[2,], ") ", combination[3,], sep="")
返回:
"(1,2) 1.5" "(1,3) 2" "(1,4) 2.5" "(1,5) 3" "(2,3) 2.5" "(2,4) 3" ...
答案 1 :(得分:0)
sprintf
也是一个不错的选择,因为您也可以轻松指定要返回的精度:
sprintf("(%.f, %.f) %.01f", ## Define the template you want to use
combination[1, ], ## Define (in order) where you want to get the
combination[2, ], ## values to fill in the template
combination[3, ])
# [1] "(1, 2) 1.5" "(1, 3) 2.0" "(1, 4) 2.5" "(1, 5) 3.0" "(2, 3) 2.5"
# [6] "(2, 4) 3.0" "(2, 5) 3.5" "(3, 4) 3.5" "(3, 5) 4.0" "(4, 5) 4.5"