我使用R读取一个文本文件,然后对其进行操作。输入文件有22列。这是第一列的样子:
NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y我目前正在使用:
read.table("filename", stringsAsFactors=FALSE) 来输入文件。当我运行同样的命令时,我会得到这样的警告:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 2 did not have 23 elements我不确定我错在哪里。我是R的新手,真的很感谢你的帮助。我试着确认这不是转帖,但如果是转帖,请将我链接到原文。
发布于 2013-04-01 21:03:01
假设文本文件如下所示:
NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y
ape:APE_0001 242 15 0 1 12 10 18 2 27 9 43 7 2 8 3 5 25 15 24 3 12
ape:APE_0002 113 7 1 6 6 1 12 3 4 10 16 4 2 4 0 10 3 5 9 4 5
ape:APE_0004 305 24 2 5 8 9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12并将其命名为'dat.txt‘并存储在您的工作目录中,这应该可以正常工作:
dat <- read.table("dat.txt", stringsAsFactors=FALSE, header=TRUE)
# to give:
dat
NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y
1 ape:APE_0001 242 15 0 1 12 10 18 2 27 9 43 7 2 8 3 5 25 15 24 3 12
2 ape:APE_0002 113 7 1 6 6 1 12 3 4 10 16 4 2 4 0 10 3 5 9 4 5
3 ape:APE_0004 305 24 2 5 8 9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12由于这似乎对你不起作用,所以在你的文本文件中可能有一些奇怪的和看不见的东西,隐藏的字符,等等。
假设您的文本文件不是很大,一种解决方法是在RStudio中打开一个新的R脚本,然后键入
dat <- read.table(stringsAsFactors=FALSE, header=TRUE, text = "")然后将文本文件中的所有文本复制并粘贴到上面行中的""之间,而不对换行符或格式进行任何更改,然后选择全部并将其发送到控制台。
对于注释中的示例,如下所示:
dat <- read.table(header=TRUE, stringsAsFactors=FALSE, text = "NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y
ape:APE_0001 242 15 0 1 12 10 18 2 27 9 43 7 2 8 3 5 25 15 24 3 12
ape:APE_0002 113 7 1 6 6 1 12 3 4 10 16 4 2 4 0 10 3 5 9 4 5
ape:APE_0004 305 24 2 5 8 9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12")如果这不实际或不可能,在你的问题中发布一个指向你的文本文件的链接(比如:http://temp-share.com/show/dPf3a6oHW在45天后自动删除),这样其他人就可以看到了。
https://stackoverflow.com/questions/15742227
复制相似问题