如果我有一个像这样的大的制表符分隔文件,
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中使用什么功能或包? 我为没有提供我的尝试而道歉,但真诚地我不知道如何搜索此问题以获得提示。所以任何提示都是受欢迎的。
答案 0 :(得分:3)
在使用readLines
阅读文件后,在split
中创建一个逻辑索引list
,然后将stack
创建为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
lines <- readLines("file.txt")