Мы можем использовать outer
out <- outer(1:100, 1:100)
. Он может быть преобразован в 3-колоночный data.frame с melt
library(reshape2)
out2 <- melt(out)
В for
l oop, нам нужно
for (i in 1:100) {
for (z in 1:100){
answer<-i*z
table[i, z] <- answer
}
}
table[i, z] <- answer
где
table <- matrix(nrow = 100, ncol = 100)
Проверка вывода
all.equal(out, table)
#[1] TRUE
Если нам нужно ' i ',' z '
out2 <- transform(expand.grid(i = 1:100, z = 1:100), answer = i * z)
Или с crossing
library(tidyr)
library(dplyr)
crossing(i = 1:100, z = 1:100) %>%
mutate(answer = i * z)
# A tibble: 10,000 x 3
# i z answer
# <int> <int> <int>
# 1 1 1 1
# 2 1 2 2
# 3 1 3 3
# 4 1 4 4
# 5 1 5 5
# 6 1 6 6
# 7 1 7 7
# 8 1 8 8
# 9 1 9 9
#10 1 10 10
# … with 9,990 more rows
Или в for
l oop
table1 <- c()
for(i in 1:100) {
for(z in 1:100){
table1 <- rbind(table1, c(i, z, i * z))
}
}