加载R中包含无用字符的数据帧

加载R中包含无用字符的数据帧,r,dataset,data-cleaning,R,Dataset,Data Cleaning,我有一个每次输出一个表的可执行文件 它由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 sc

我有一个每次输出一个表的可执行文件 它由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中工作。 谢谢

你可以拥有!作为注释字符处理:

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替换为您的文件名,并且!可以忽略任何字符。

您可以选择!作为注释字符处理:

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替换为您的文件名,并且!可以忽略任何字符。

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

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

确实如此,非常感谢!在我的例子中,它注释掉了第一行,但没关系。最好有一个ignore.char选项@MatteoFasiolo哦,是的,它会拿走你的头球!但我相信你已经明白了,修复起来很容易。忽略。char在这种情况下会很好。太好了!这个gsub技巧肯定会很有用。真的,非常感谢!在我的例子中,它注释掉了第一行,但没关系。最好有一个ignore.char选项@MatteoFasiolo哦,是的,它会拿走你的头球!但我相信你已经明白了,修复起来很容易。忽略。char在这种情况下会很好。太好了!这个gsub技巧肯定会很有用。