Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中重塑csv文件_R - Fatal编程技术网

在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)试试吗?