1

我有一个可执行文件,每次被 R 调用时都会输出一个表。然后我想在 R 中加载数据帧,但它包含很多“!”,例如:

! A B C
  0 1 2
  3 3 2
  1 1 1
!
  3 4 2
  2 2 3
  5 2 5
!
  3 4 2
  .....

这样我得到:

sim_stat <- read.table("C:/Users/Matteo/Desktop/Forest/Formind/formind-model/result/result.dia")
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
#  line 2 did not have 11 elements

我需要或多或少地每秒读取一次 R 中的数据,所以有没有一种快速的方法来删除那些“!” ? 我在 Windows 中工作。谢谢!

4

2 回答 2

4

您可以将其!视为注释字符:

read.table(file="...", comment.char="!")

将摆脱标题或任何其他带有无关的行!。如果您有与 ! 对齐的数据,并且您想忽略 ! 但保留其余部分,有一个很长的解决方法:

> read.table(text=gsub("!", "", readChar("test.txt", file.info("test.txt")$size)), header=TRUE)
  A B C
1 0 1 2
2 3 3 2
3 1 1 1
4 3 4 2
5 2 2 3
6 5 2 5
7 3 4 2

显然,在这两种情况下都用您的文件名替换“test.txt”和“!” 与要忽略的任何字符。

于 2014-06-27T17:50:19.763 回答
1

您可以遵循与此答案相同的想法,只需删除感叹号(或任何其他不需要的字符)而不是逗号。

于 2014-06-27T18:54:19.797 回答