首页 > 解决方案 > 为什么在 R 字符串中的条目不会被读入 data.frame?

问题描述

我有一个data.tsv文件(标签分隔条目)。完整的文件可以在这里找到。

文件中的条目如下所示:

">173D:C"   "TVPGVXTVPGV"   "CCSCCCCCCCC"
">173D:D"   "TVPGVXTVPGV"   "CCCCCCCCSCC"
">185D:A"   "SAXVSAXV"  "CCBCCCBC"
">1A0M:B"   "GCCSDPRCNMNNPDYCX" "CCTTSHHHHHTCTTTCC"
">1A0M:A"   "GCCSDPRCNMNNPDYCX" "CGGGSHHHHHHCTTTCC"
">1A0N:A"   "PPRPLPVAPGSSKT"    "CCCCCCCCSTTCCC"

我正在尝试将字符串条目读入数据框(读入包含 3 列的矩阵):

data = data.frame(read.csv(file = './data.tsv', header = FALSE, sep = '\t'))

但只读取第一列。所有其他列都是空的。

我还尝试了不同的命令,例如

data = read.csv(file = './data.tsv', header = FALSE, sep = '\t')
data = read.csv(file = './data.tsv', sep = '\t')
data = data.frame(read.csv(file = './data.tsv'))

但没有成功。有人能预见为什么输入没有被成功读取吗?

标签: rcsvdataframe

解决方案


使用最后在注释中可重复定义的文件,这有效:

DF <- read.table("myfile.dat", as.is = TRUE)

给出:

> DF
       V1                V2                V3
1 >173D:C       TVPGVXTVPGV       CCSCCCCCCCC
2 >173D:D       TVPGVXTVPGV       CCCCCCCCSCC
3 >185D:A          SAXVSAXV          CCBCCCBC
4 >1A0M:B GCCSDPRCNMNNPDYCX CCTTSHHHHHTCTTTCC
5 >1A0M:A GCCSDPRCNMNNPDYCX CGGGSHHHHHHCTTTCC
6 >1A0N:A    PPRPLPVAPGSSKT    CCCCCCCCSTTCCC

笔记

Lines <- '">173D:C"   "TVPGVXTVPGV"   "CCSCCCCCCCC"
">173D:D"   "TVPGVXTVPGV"   "CCCCCCCCSCC"
">185D:A"   "SAXVSAXV"  "CCBCCCBC"
">1A0M:B"   "GCCSDPRCNMNNPDYCX" "CCTTSHHHHHTCTTTCC"
">1A0M:A"   "GCCSDPRCNMNNPDYCX" "CGGGSHHHHHHCTTTCC"
">1A0N:A"   "PPRPLPVAPGSSKT"    "CCCCCCCCSTTCCC"'
writeLines(Lines, "myfile.dat")

推荐阅读