我有一个.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
程序包。