r - 如何使用 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))
}
解决方案
这似乎是熟悉该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 日创建
推荐阅读
- c# - 有没有办法为不同命名空间中的同名扩展方法指定使用哪种扩展方法?
- ios - 通知到来时没有调用 didReceiveRemoteNotification 方法
- javascript - 在倒计时脚本上设置 GMT
- javascript - Leaflet.js - 如果所有弹出窗口都关闭,则将视图返回到起始位置
- java - 使用 Java 运行 Windows 服务
- android - Volley 执行了太多不受控制的重试
- regex - 正则表达式 - 匹配 BEGIN 和 END 之间的所有内容
- ruby - Ruby Bunny - 从多个队列中消费
- azure - 用于地理位置查询的移动应用后端
- android - 如何从任务中删除监听器?