我有一个72行72列的大数据帧。都是数字。我只想做一个表,第一行的和乘以第一列的和,依此类推。例如,如果这是我的df
x0 <- c(0,0,11,0)
x0.1 <- c(0,251,0,0)
x0.2 <- c(0,495,0,0)
x0.4 <- c(0,0,0,6)
df <- data.frame(x0,x0.1,x0.2,x0.4)
我想让我的桌子看起来像这个
1 0
2 124911
3 5445
4 36
您要查找的是:吗
rowSums(df)*colSums(df)
使用sapply的解决方案:
sapply(1:nrow(df), function(i){sum(df[i,]*sum(df[,i]))})
这里有一个tidyverse
方法:
library(dplyr)
library(tidyr)
df %>%
unite(x, c(x0, x0.1, x0.2, x0.4), sep = "") %>%
mutate(x = sub("^0+(?!$)", "", x, perl=TRUE))
x
1 0
2 2514950
3 11000
4 6