如果我有这样一个大的制表符分隔文件,
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中使用什么功能或软件包?
很抱歉没有提供我的尝试,但是真诚的我不知道如何搜索该问题以获取提示。因此,任何提示都是值得欢迎的。
最佳答案
使用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")
关于r - 在R中重塑csv文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48407459/