操作和格式化数据帧的输出

时间:2014-07-16 19:21:16

标签: r

简单地说,我想打印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 等

有人能指出我正确的方向吗?

非常感谢, 克里斯

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"