r - 大data.frame的子集在fwrite后返回“未定义的列选择”错误
问题描述
尝试写出 data.frame 的子集时发生了一些奇怪的行为。不幸的是,由于文件很大,我无法共享数据,这就是我要写出子集的原因。我也无法用示例数据复制错误。
sco 是一个具有 84 列和 326,991,572 行的 data.frame 对象。这是代码:
sco = as.data.frame(sco)
setDTthreads(36)
data.table::fwrite(sco[,c(1:10)], paste0("PCA_values1.csv"))
data.table::fwrite(sco[,c(11:20)], paste0("PCA_values2.csv"))
data.table::fwrite(sco[,c(21:30)], paste0("PCA_values3.csv"))
data.table::fwrite(sco[,c(31:40)], paste0("PCA_values4.csv"))
data.table::fwrite(sco[,c(41:50)], paste0("PCA_values5.csv"))
data.table::fwrite(sco[,c(51:60)], paste0("PCA_values6.csv"))
第一个子集写得很好。然后第二个给我这个错误:
Error in '[.data.frame'(sco, , c(11:20)) : undetermined columns selected
data.table::fwrite 是否将 data.frame 转换为 data.table 因为它非常大?或者对对象进行其他更改以使子集不再起作用?
最初,数据是 prcomp 的输出,所以我还有其他几个非常大的 data.frame 对象,它们表现出相同的行为。
解决方案
推荐阅读
- javascript - 动态更改关键帧后如何重新启动更新的动画?
- java - 如何管理新标签
- oracle - 如何知道oracle 11g xe的端口号
- c - 将校验和算法从 Python 转换为 C
- spring - 在列中断言特定且唯一的值
- c++ - 在 C++ 中返回 int 进行错误检查是不是很糟糕
- webassembly - 将数据传递给 WebAssembly
- jquery - $.getJSON 使用动态变量
- javascript - 为什么在内部函数内部更改时外部变量不会动态更改?
- android - 我在 Android 应用程序中使用了地图,它可以在我的手机和模拟器上运行,但它的 apk 不能在其他手机上运行