【发布时间】:2018-09-18 18:56:21
【问题描述】:
我有以下data.table。
dat <- structure(list(kmers = c("TTTTTTTTTTTT", "TCCATTCCATTC", "TTCCATTCCATT",
"CCATTCCATTCC", "ATTCCATTCCAT", "CATTCCATTCCA", "TTTTATTATTTT",
"AAAATTATAAAA", "AAGACAATTTCT", "AAAGACAATTTC"), counts = c(16361L,
10090L, 9599L, 9021L, 8516L, 8325L, 5739L, 5642L, 5378L, 5326L
)), .Names = c("kmers", "counts"), class = c("data.table", "data.frame"
), row.names = c(NA, -10L), .internal.selfref = <pointer: 0x29f1d78>)
这是桌子
kmers counts
1: TTTTTTTTTTTT 16361
2: TCCATTCCATTC 10090
3: TTCCATTCCATT 9599
4: CCATTCCATTCC 9021
5: ATTCCATTCCAT 8516
6: CATTCCATTCCA 8325
7: TTTTATTATTTT 5739
8: AAAATTATAAAA 5642
9: AAGACAATTTCT 5378
10: AAAGACAATTTC 5326
我想将列数除以所有计数的总和。对于数据框,我会做
total=sum(dat$counts)
freq <- dat$counts/total
我怎样才能为 data.table 做到这一点?每个 kmers 都是唯一的,所以我不希望 kmers 列中的值重复。
例如,第一行是16361/sum(dat$counts)。
【问题讨论】:
-
dat[, freq := counts / sum(counts)] -
感谢更新!!!
标签: r data.table