查找来自 2 个数据帧的列的方差

  • 本文关键字:方差 数据帧 查找 r
  • 更新时间 :
  • 英文 :


>我有 2 个数据帧

数据帧 A 和数据帧 B。

A <- data.frame(a=c(1,2,3,4,5),b=c(2,4,6,8,10),c=c(3,6,9,12,15),x=c(4,8,12,16,20),y=c(5,10,15,20,25))
B <- data.frame(a=c(1,2,3,4,5),b=c(2,4,6,8,10),c=c(3,6,9,12,15),x=c(4,8,12,16,20),y=c(5,10,15,20,25))
A
a   b   c   x   y
1   2   3   4   5
2   4   6   8  10
3   6   9  12  15
4   8  12  16  20
5  10  15  20  25
B
a   b   c   x   y
1   2   3   4   5
2   4   6   8  10
3   6   9  12  15
4   8  12  16  20
5  10  15  20  25

预期输出:

C
a   b   c   x   y
1   0   0   0   0
2   0   0   0   0
3   0   0   0   0
4   0   0   0   0
5   0   0   0   0

两者都有一个字母数字的键列。

两个数据帧共有 260 列,其中 250 列是浮点型。

有没有一种更简单的方法可以轻松计算 250 列中每一列的方差并将方差存储在另一个数据帧中?

我认为您想要两个数据帧的相应列的差异

temp = names(A)
data.frame(A["a"], do.call(cbind, lapply(temp[!temp %in% "a"], function(x) A[x] - B[x])))
#  a b c x y
#1 1 0 0 0 0
#2 2 0 0 0 0
#3 3 0 0 0 0
#4 4 0 0 0 0
#5 5 0 0 0 0

我们可以用Map/mapply来求出 'A' 和 'B' 对应列之间的差异

cbind(A[1], mapply(`-`, A[-1], B[names(A)[-1]]))
#  a b c x y
#1 1 0 0 0 0
#2 2 0 0 0 0
#3 3 0 0 0 0
#4 4 0 0 0 0
#5 5 0 0 0 0

或者只是

cbind(A[1], A[-1] - B[-1])

最新更新