首页 > 解决方案 > 如何使用 for 循环在 R 中创建一个简单的表?

问题描述

我被要求创建一个包含三列 A、B 和 C 以及八行的表。A列必须走1、1、1、1、2、2、2、2。B列必须交替1、2、1、2、1、2、1、2。C列必须走1、1、2 , 2, 1, 1, 2, 2。我能够很好地生成 A 列数据,但不知道如何获取 B 或 C。这是我到目前为止的代码:

dataSheet <- matrix(nrow = 0, ncol = 3)  
colnames(dataSheet) <- c('A', 'B', 'C')  
A <- 1 
B <- 1 
C <- 1 

for (A in 1:4){
A=1
dataSheet <- rbind(dataSheet, c(A, B, C)) 
}
for (A in 5:8){
A=2
dataSheet <- rbind(dataSheet, c(A, B, C)) 
}

标签: rloopsfor-loopusing

解决方案


这似乎是熟悉该rep()功能的一个很好的借口,因为它很容易支持这个问题,但如果你足够聪明的话,还有很多更复杂的问题:

dt <- data.frame(A = rep(1:2, each = 4),
                 B = rep(1:2, times = 4),
                 C = rep(1:2, each = 2))
dt
#>   A B C
#> 1 1 1 1
#> 2 1 2 1
#> 3 1 1 2
#> 4 1 2 2
#> 5 2 1 1
#> 6 2 2 1
#> 7 2 1 2
#> 8 2 2 2

reprex 包(v0.2.1)于 2019 年 1 月 26 日创建


推荐阅读