在R中重塑csv文件
如果我有一个像这样以制表符分隔的大文件在R中重塑csv文件,r,R,如果我有一个像这样以制表符分隔的大文件 lowenbrau a 789 b 678 c 970 augustiner d 89 e 563 f 456 g 123 a 789 lowenbrau b 678 lowenbrau c 970 lowenbrau d 89 augustiner e 563 augustiner f 456 augustiner g 123 augustiner 以此类推,我想添加一个标题如下的专栏 lowenbrau a 789 b 678 c 970 augu
lowenbrau
a 789
b 678
c 970
augustiner
d 89
e 563
f 456
g 123
a 789 lowenbrau
b 678 lowenbrau
c 970 lowenbrau
d 89 augustiner
e 563 augustiner
f 456 augustiner
g 123 augustiner
以此类推,我想添加一个标题如下的专栏
lowenbrau
a 789
b 678
c 970
augustiner
d 89
e 563
f 456
g 123
a 789 lowenbrau
b 678 lowenbrau
c 970 lowenbrau
d 89 augustiner
e 563 augustiner
f 456 augustiner
g 123 augustiner
我应该在R中使用什么函数或包?
我很抱歉没有提供我的尝试,但我真的不知道如何搜索这个问题来得到提示。因此,任何提示都是受欢迎的。在使用
读取行
读取文件后,创建一个逻辑索引,将
拆分为列表
,然后将其堆叠到data.frame
中,并使用read.table
将第一列拆分为两列
i1 <- grepl("^\\w+$", lines)
d1 <- stack(setNames(split(lines[!i1], cumsum(i1)[!i1]), lines[i1]))
cbind(read.table(text=d1$values, header = FALSE, stringsAsFactors = FALSE), d1[2])
# V1 V2 ind
#1 a 789 lowenbrau
#2 b 678 lowenbrau
#3 c 970 lowenbrau
#4 d 89 augustiner
#5 e 563 augustiner
#6 f 456 augustiner
#7 g 123 augustiner
i1安装并使用read.mtable(“yourfile”、“^[a-z]+$”、…)
。用通常与read.table一起使用的其他参数填写…
。然后您可以使用“data.table”中的rbindlist(结果,idcol=TRUE)
…谢谢您,这是什么意思“^\\w+$”?它不适用于我的实际数据,我认为问题可能在这里。@user3224522因为您只显示了一个单词的模式,即“lowenbrau”和“augstiner”,我认为整个文档中可能只有一个单词<代码>^
分隔其他行的字符串的开始和结束。你能用“^[A-Za-z]+$”
(如评论中显示的A5C1D2H2I1M1N2O1R2T1)试试吗?