首页 > 解决方案 > 如何让 R 将 diff(x) 格式化为行?

问题描述

我希望下面的代码输出以行而不是列表示一系列数字的 diff(x)。它目前计算数据框行的 diff(x) ,这是我想要的,所以这些值是正确的,但它们是按列格式化的。这是一些生成某些数字系列的 diff(x) 的示例代码:

x <- c(19, 26, 39)
y <- c(34, 47, 51)
z <- c(45,50,60)
B <- data.frame(x, y, z)
B
f1 = function(x){return(diff(x))}
apply(B,1,f1)

>[,1] [,2] [,3]
y   15   21   12
z   11    3    9

#this seems to give diff(x) as columns
#want as rows, i.e. the transpose:

15 11
21 3
12 9

非常感谢

标签: r

解决方案


也许你可以试试

Bout <- B[-1]- B[-ncol(B)]

这样

> Bout
   y  z
1 15 11
2 21  3
3 12  9

或者

Bout <- t(diff(t(B)))

这样

> Bout
      y  z
[1,] 15 11
[2,] 21  3
[3,] 12  9

推荐阅读