这是R中的一个简单任务,但看起来我有一个误解。任何帮助澄清表示赞赏:转置并连接R data.tables
我有一个单一的文本文件的下列R- data.table:
dat = as.data.table(fread(...))
type proportion
1: type_3 0.5570502431
2: type_5 0.1108589951
3: type_1 0.0688816856
4: type_9 0.0601296596
5: type_8 0.0554294976
6: type_12 0.0450567261
7: type_2 0.0322528363
8: type_4 0.0202593193
9: type_7 0.0166936791
10: type_6 0.0145867099
11: type_10 0.0141004862
12: type_11 0.0040518639
还有约。这些文本文件中有500个,我可以将其作为R data.table
读入并放入R列表中。原则上这很简单:
list_of_data.tables = list(dat1, dat2, dat3, ...)
concat = do.call("rbind", list_of_data.tables)
这不是我想要的格式。我想利用列type
作为最终级联data.table的报头,type_1
,type_2
,type_3
等。然后,最终的级联data.table的每一行是列porportion
为dat1
等
下面是最终级联data.table的格式:
type_1 type_2 type_3 type_4 type_5 type_6 ...
dat1 0.557 0.110 0.068 0.0601 0.0554 0.045 ...
dat2 0.23 0.324 0.12 0.0723 0.002 0.004 ...
...
我首先想到的是用t()
移调原来data.table,但是这并没有使type
头。此外,我不知道如何通过dat1
等标签每行。
什么是做这种简单的事情的正确方法?
旁注它们绑定:'fread'解释说它返回一个data.table,不需要强制。另外,'?rbind'解释说你可以使用'rbindlist'而不是'do.call'。 – Frank
谢谢你,我不知道这个! – ShanZhengYang