2

请看图片。我已经开始使用 R,并且知道它如何/它可以从 Excel 读取文件,但是它可以读取像这样格式化的东西吗?

http://www.flickr.com/photos/68814612@N05/8632809494/

(我很抱歉,上传对我不起作用)

4

1 回答 1

0

详细说明评论中的一些内容:

如果将文件加载到 Excel 中,则可以将其保存为固定宽度或逗号分隔的文本文件。两者都应该很容易读入 R。

以下内容对您来说可能已经很明显了。

(首先,一个问题:您确定不能以每行一组数据的格式获取数据吗?您获取的文件是否有可能是从更有利的不同文件格式生成的将数据加载到 R 中?)

您是应该开始重新排列 R 中的数据还是处理原始文本,取决于您(或您身边可以提供帮助的人)自然而然的事情。就我个人而言,在将文本文件加载到 R 之前,我会在 R 之外重新排列文本文件。这对我来说是最简单的。Perl 是用于此目的的出色语言,但如果您可以使用 Unix shell 脚本,或者使用功能强大的编辑器(如 Vim 或 Emacs),也可以使用它。如果您没有偏好,我建议您使用 Perl。如果您有任何重要的编程经验,您将能够了解您需要的内容。另一方面,您已经将其加载到 R 中,因此在那里处理数据可能会更好。

例如,您可以执行一个循环,逐行遍历文本文件并执行以下操作:

while (still have lines to read) {
  read first header line into an vector if this is the first time through the loop
   otherwise, read it and throw it away
  read data line 1 into an vector
  read second header line into vector if this is the first time
   otherwise, read it and throw it away
  read data line 2 into an vector
  read third header line into vector if this is the first time
   otherwise, read it and throw it away
  read data line 3 into an vector
  if this is first time through, concatenate the header vectors; store as next row
    in something (a file, a matrix, a dataframe, etc.)
  concatenate the data vectors you've been saving, and store as next row in same thing
}

write out the whole 2D data structure

或者,如果标题永远不会改变,那么您可以在循环之前将它们逐字嵌入脚本中,无论如何都将它们丢弃。这将使代码更干净。或者单独读取文件的前几行以获取标题,然后有一个单独的脚本来读取数据并将其添加到包含标题的文件中。(标题可能在 R 中很有用,所以我建议将它们保留在文本文件的顶部。)

于 2013-04-08T21:59:24.647 回答