【发布时间】:2020-08-12 12:02:11
【问题描述】:
我有一个大数据,我正在尝试根据几列删除重复的行条目。列标题和示例条目是
count freq, cdr3nt, cdr3aa, v, d, j, VEnd, DStart, DEnd, JStart
5036 0.0599 TGCAGTGCTAGAG CSARDPDR TRBV20-1 TRBD1 TRBJ1-5 15 17 43 21
有几千行,两行要匹配除“count”和“freq”之外的所有值必须相同。我想删除重复的条目,但在此之前,我需要将一个重复行的“计数”值更改为单个重复行“计数”的总和,以反映真实的丰度。然后,我需要根据整个表的所有计数之和,重新计算新“计数”的频率。
由于某种原因,脚本没有改变任何东西,而且我知道表中有重复的条目。
这是我的脚本。
library(dplyr)
# Input sample replicate table.
dta <- read.table("/data/Sample/ci1371.txt", header=TRUE, sep="\t")
# combine rows with identical data. Recalculation of frequency values.
dta %>% mutate(total = sum(count)) %>%
group_by(cdr3nt, cdr3aa, v, d, j, VEnd, DStart, DEnd, JStart) %>%
summarize(count_new = sum(count), freq = count_new/mean(total))
dta_clean <- dta
【问题讨论】:
-
样本数据会很有用,还是您希望我们生成完全随机的数据(可能不具有代表性)?
-
在无法访问时包含数据的 read.table() 是没有帮助的。而是提供一些示例数据,例如使用 dput(),其中包含一些重复项,因此我们可以重现问题
-
附上数据集的缩减副本对我来说可能更容易。有没有办法在这个板上做到这一点?
-
正如@mnist 所建议的,首选方法是我们可以轻松使用的明确格式,即
dput。不过,除此之外,最好提供数据的代表性样本,这样我们就不需要滚动浏览数据页面,并且您可以获得一种处理真实数据的方法(更大的)数据。 (或者你可以调整我下面的播放数据以适应你的数据集。) -
嗯,没有。即使我可以确定您如何将数据电子表格读入 R,我不会从图像转录 (xkcd.com/2116)。有关提供代表性样本数据的其他建议,请参阅这些链接:stackoverflow.com/q/5963269、minimal reproducible example 和 stackoverflow.com/tags/r/info。