在R中的apply语句中引用列名和行名

在R中的apply语句中引用列名和行名,r,R,我在R中有一个数据帧,看起来像下面的那个 a b c d e f 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 summation <- function (x,y) (return (sum(data$x * data$y))) 数据库很大,跨越100多列和5000行,包含所有二进制文件(0和1)。我想在R中的每一列和每一列之间构造一个重叠。类似于下面给出

我在R中有一个数据帧,看起来像下面的那个

    a b c d e f
    0 1 1 0 0 0
    1 1 1 1 0 1
    0 0 0 1 0 1
    1 0 0 1 0 1
    1 1 1 0 0 0
    summation <- function (x,y) (return (sum(data$x * data$y)))
数据库很大,跨越100多列和5000行,包含所有二进制文件(0和1)。我想在R中的每一列和每一列之间构造一个重叠。类似于下面给出的一个。此重叠数据帧将是一个具有相同行数和列数的方形矩阵,并且与第一个数据帧中的列数相同

      a b c d e f
    a 3 2 2 2 0 2
    b 2 3 3 3 0 1
    c 2 3 3 1 0 1
    d 2 3 1 3 0 3
    e 0 0 0 0 0 0
    f 2 1 1 3 0 3
第二个数据帧的每个单元格都由行和列在第一个数据帧中都有1的情况数填充

      a b c d e f
    a 3 2 2 2 0 2
    b 2 3 3 3 0 1
    c 2 3 3 1 0 1
    d 2 3 1 3 0 3
    e 0 0 0 0 0 0
    f 2 1 1 3 0 3
我在考虑这样构造一个空矩阵:

    df <- matrix(ncol = ncol(data), nrow = ncol(data))
    colnames(df) <- names(data)
    rownames(df) <- names(data)

df您正在寻找
crossprod

crossprod(as.matrix(df1))
#  a b c d e f
#a 3 2 2 2 0 2
#b 2 3 3 1 0 1
#c 2 3 3 1 0 1
#d 2 1 1 3 0 3
#e 0 0 0 0 0 0
#f 2 1 1 3 0 3
数据

df1 <- structure(list(a = c(0L, 1L, 0L, 1L, 1L), b = c(1L, 1L, 0L, 0L, 
1L), c = c(1L, 1L, 0L, 0L, 1L), d = c(0L, 1L, 1L, 1L, 0L), e = c(0L, 
0L, 0L, 0L, 0L), f = c(0L, 1L, 1L, 1L, 0L)), .Names = c("a", 
"b", "c", "d", "e", "f"), class = "data.frame", row.names = c(NA, 
-5L))

df1或显式(但根据
?crossprod
)稍微慢一点):
t(as.matrix(df))%*%as.matrix(df)
。无论如何+1.谢谢你,马库斯。太棒了。。一行代码,表示我一直在争论的问题。:)