- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我更愿意在 R 中执行以下操作,但我愿意接受(易于学习的)其他解决方案。
我有多个(比如说 99 个)制表符分隔文件(我们称它们为 S1.txt 到 S99.txt)和表格,所有文件都具有完全相同的格式。每个表是 ~2,000,000 cols x 5 行。这是一个玩具示例:
ID Chr Position DP1 DP2
A1 1 123 1.5 2.0
A2 1 124 1.4 0.3
根据定义,ID 是唯一的并且总是以相同的顺序排列,Chr 和 Pos 总是以相同的顺序排列。每个输入文件中唯一不同的是 DP1 列和 DP2 列。我想被“整理”的输出表,我想就是这个词。以下是只有 3 个示例输入文件时的输出示例。
ID Chr Position S1.DP1 S1.DP2 S2.DP1 S2.DP2 S3.DP1 S3.DP2
A1 1 123 1.5 2.0 1.2 2.0 1.5 2.1
A2 1 124 1.4 0.3 1.0 0.5 0.5 0.05
请注意,每个输入文件都有一个为 DP1 和 DP2 创建的新列。此外,列的名称是信息性的(告诉我它来自哪个输入文件以及哪个数据点 - DP)。
当列不同时,我发现了问题: R: merging a lot of data.frames我也知道合并,虽然我觉得你最终得到了奇怪的列名: How to join (merge) data frames (inner, outer, left, right)?
我的另一个解决方案是初始化一个数据帧,然后加载每个文件并添加数据点,但这会使用一个循环,而且非常缓慢和可怕。所以,我需要一个更优雅的解决方案。感谢您的帮助。
最佳答案
我重新阅读了您的问题并想到了一个更好的解决方案。
首先,我不会一次将所有 .txt 文件加载到 R 中。如果您的 .txt 文件是 2e6x5 并且有 100 个文件,您可能会在加载所有文件之前耗尽 RAM。我会一次加载一个,然后迭代合并它们。
library(readr) #Use this to load your data, it is much better than the base functions
f <- list.files(path = "path/to/file", pattern = "*.txt", full.names = TRUE)
d <- read_delim(f[1], delim = "\t")
idx = c("ID", "Chr", "Position")
for (i in seq(2, length(f)){
d_temp <- read_delim(f[i], delim = "\t")
d <- merge(d, d_temp, by = idx)
rm(d_temp) #not necessary but I like to include to make explicit
}
命名d
n <- expand.grid(paste0("S", seq(1, length(f)), c("DP1", "DP2"))
names(d)[!names(d) %in% idx] <- paste(n[ ,1], n[ ,2], sep = ".")
更新
呃,我错过了一个明显的事实,如果你真的有 100 个 2e6x5 .txt 文件,你可能无法使用 R 来完成这项任务。我怀疑是否有可能在 R 中存储 2e6X500 数据帧。即使您在具有大量 RAM 计算时间的服务器上也是如此。我认为 future 最重要的问题是你想用这些数据做什么。一旦您回答了这个问题,您就可以有效地使用您的数据。
关于R - 合并多个大型数据帧(整理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301141/
当我创建一个数据库时,我被要求选择默认排序规则,当我创建一个表时,我被要求选择排序规则。 utf8_general_ci 或...拉丁...?区分哪个是对的依据是什么? 最佳答案 A collatio
PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义
正则(regular),要使用正则表达式需要导入Python中的re(regular正则的缩写)模块。正则表达式是对字符串的处理,我们知道,字符串中有时候包含很多我们想要提取的信息,掌握这些处理字符
在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 ?
]js正则表达式基本语法(精粹): http://www.zzvips.com/article/94068.html 许多语言,包括P
1、首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mo
我更愿意在 R 中执行以下操作,但我愿意接受(易于学习的)其他解决方案。 我有多个(比如说 99 个)制表符分隔文件(我们称它们为 S1.txt 到 S99.txt)和表格,所有文件都具有完全相同的格
我制作了一个小程序,可以使用数学进行物理计算。 我有几个 if 语句,它们做同样的事情,但变量不同,但它们必须是它们,就好像 TextBox 是空的,int 将是 0。 例子如下: if (first
我正在构建需要扩展框的东西 - 这很好,我可以正常工作。然而,如果你看看这个FIDDLE你会看到它有点乱。我希望有一种方法可以扩展它们所在的盒子,这样它们就不会跳来跳去?那么盒子 3 的左侧会比右侧膨
我相当确定(在 MATLAB 中)应该有一个优雅的解决方案,但我现在想不起来。 我有一个包含 [classIndex, start, end] 的列表,我想将连续的类索引折叠成一个组,如下所示: 这个
维基百科将 XMPP 定义为: ...an open-standard communications protocol for message-oriented middleware based on
我的代码库已经进入了某种状态,希望能够摆脱它 repo 看起来有点像这样(A1、B1、C1 等显然是提交) A1 ---- A2 ---- A3 ---- A4 -
如何整理以下数据框 data.frame(a = c(1,2), values = c("[1.1, 1.2, 1.3]", "[2.1, 2.2]")) a values 1
所以我试图在 Haskell 中生成出租车号码列表。出租车号码是可以用两种不同方式写成两个不同立方体之和的数字 - 最小的是 1729 = 1^3 + 12^3 = 9^3 + 10^3 . 现在,我
我正在使用 roxygen2 来记录我正在开发的包的数据集。我知道你可以 use roxygen to document a dataset ,但是Shane's answer最终建议进行黑客攻击,虽
这个问题在这里已经有了答案: How can I combine two strings together in PHP? (19 个回答) 关闭 5 年前。 提前致歉,尽管我已经尝试并失败了几件不
我有一个大部分整洁的数据框,但有 2 列包含基准,而不是将基准合并为观察结果。我该如何整理,以便将“Facility_score”和“TTP”col_names 添加为每个独特的 FYQ 和 Metr
我有以下输入数据。每一行都是一个实验的结果: instance algo profit time x A 10 0.5 y A
我已经使用 PHP 和 MySQL 实现了搜索。目前我的表格整理是 "utf8_unicode_ci"。问题是,使用此排序规则 "ä"= "a" 是。如果我将排序规则更改为 "utf_bin" 一切正
所以我是 JS 和 Jquery 库的新手。我一直在玩弄一些东西,可以看到它非常不整洁,这就是我希望你们能帮助建议一种更好的方法来实现我想要实现的目标的地方。 目标: 要有多个复选框,其中一些如果被选
我是一名优秀的程序员,十分优秀!