r - 填充空数据框而不定义维度
问题描述
我很好奇是否有一种方法可以在无需定义维度的情况下填充空数据框。在我不知道最终结果会有多大的情况下,这可能对我有用。
foo <- data.frame()
for (i in 1:5){
foo[, i] <- sample(1:10, 10, replace = TRUE)
}
这给出了错误
Error in [<-.data.frame(*tmp*, , i, value = c(1L, 7L, 9L, 9L, 6L, :
replacement has 10 rows, data has 0
我知道您可以定义尺寸,它将与以下内容一起使用,但我想知道是否有替代方法您不必这样做。
foo <- data.frame(matrix(nrow = 10, ncol = 0))
解决方案
One approach might be
foo <- data.frame()
for (i in 1:5) foo <- rbind(foo, sample(1:10, 10, replace = TRUE))
which is equivalent to
for (i in 1:5) foo[i,] <- sample(1:10, 10, replace = TRUE)
Then, transposing it, you can get what you want, i.e.
> t(foo)
1 2 3 4 5
X.1 8 6 8 1 9
X.2 4 3 4 3 1
X.3 6 2 1 3 7
X.4 10 7 8 4 1
X.5 3 4 6 3 1
X.6 4 4 5 4 2
X.7 9 5 5 3 8
X.8 9 1 4 7 1
X.9 7 4 4 5 9
X.10 5 4 2 2 6
(As indicated, whenever feasible, you probably want to define the size and structure of foo
as it makes the code much more efficient).
推荐阅读
- angular - 如果我使用 Fetch API 响应是正确的但是如果我使用 api-utility 我得到了 CORS 错误
- php - Laravel 两个表单提交到同一个控制器并重定向回来
- reactjs - 开玩笑测试 ComponentDidMount 的 axios
- java - 在服务中构建连接池并在其他服务中使用它们
- r - 将 reactive() 数据帧传递给 reactiveValues()
- powershell - Powershell 如何将脚本修改为硬编码“| export-csv c:\temp\filename.csv -notypeinformation”
- android - 无法准确记录 Android 的多个背靠背 SMS 传递意图
- javascript - 检查是否已添加类
- 选择单选按钮时
- jquery - 如何将变量移到函数之外?
- python-3.x - 计算两个数据帧中 ID 的特定值