在R中读取具有非标准行名的表

  • 本文关键字:非标准 读取 r
  • 更新时间 :
  • 英文 :


我有一个.txt文件,看起来像这样:

xyz ghj asd qwe
a / b:  1   2   3   4
c / d:  5   6   7   8
e / f:  9   10  11  12
...
...

我试图使用read.table(header=T(,但它似乎误解了行名。有没有办法在read.table((中处理这个问题,或者我应该只使用readLines((

没有使用read.table选项跳过每行中的几个字符的选项。

相反,您可以调用read.table两次,一次用于第一行之后的所有数据,第二次用于标头。

当你的数据在一个名为";txt";,你会这样做:

library(magrittr)
tmp <- read.table(file="test.txt", sep="", stringsAsFactors = FALSE, skip=1)[, -c(1:3)] %>%
setNames(read.table(file="test.txt", sep="", stringsAsFactors = FALSE, nrows=1))
> tmp
xyz ghj asd qwe
1   1   2   3   4
2   5   6   7   8
3   9  10  11  12
>

magrittr为您提供了管道操作符%>%,它允许您分别读取数据和标头,但将它们放在一行中。如果您有足够新的R版本,则可以使用|>运算符,而不使用magrittr程序包。

最新更新