r - data.table“超出范围”,如何为新行添加值
问题描述
在使用 data.frame 时,使用行号插入新值很简单;
df1 <- data.frame(c(1:3))
df1[4,1] <- 1
> df1
c.1.3.
1 1
2 2
3 3
4 1
它不适用于 data.table;
df1 <- data.table(c(1:3))
df1[4,1] <- 1
Error in `[<-.data.table`(`*tmp*`, 4, 1, value = 1) : i[1] is 4 which is out of range [1,nrow=3].
我该怎么做?
解决方案
数据表被设计成可以更快地处理一些常见的操作,如子集、连接、分组、排序等,因此与 data.frames 有一些差异。您指出的某些操作不适用于data.tables。您需要使用 data.table - 特定的操作。
dt1 <- data.table(c(1:3))
rbindlist(list(dt1, list(1)), use.names=FALSE)
dt1
# V1
# 1: 1
# 2: 2
# 3: 3
# 4: 1
推荐阅读
- php - DirectoryIterator 忽略流浪同步文件夹中的目录
- c - 为什么 (char) + (char) = (int) 在 C 中?
- python - unittest.TestCase 类中的参数化夹具
- javascript - 将调整大小事件绑定到元素
- json - 我在使用 jq 将 JSON 文件解析为 .csv 文件时需要帮助
- sql - 如何使用 if 创建新列
- python - 在 tkinter python 中将画布大小调整为等于帧大小
- javascript - 如何在 Javascript 中单击时插入图像?
- angular - Angular 10:如何在一个模块中导出多个组件
- r - 模拟维纳过程的第一次通过时间的平均值