如何格式化(a)CSV文件中的数据,以便可以在R中轻松导入?

时间:2012-02-20 16:36:38

标签: file r csv import

编辑:

因此,这种格式可行:

featureID    charge    xcoordinate    ycoordinate
1            2         5105.9217      336.125209180674
1            2         5108.7642      336.124751115092
2            0         2434.9217      145.893331325278

但是,如果我有两个具有多个值的列已链接,该怎么办?假设列质量与机器和质量相关联,列如下所示

 MachineQuality
 [[{1:1224}, {2:3453}], [{1:2242}, {2:4142}]

现在,如果我想像使用凸包的坐标那样将其拆分,我需要2行而不是1行。但是对于已经存在的每一行,我不需要2行(所以4,因为那里对于坐标来说已经是2个额外的了),像这样:

featureID    charge    xcoordinate    ycoordinate         quality1    quality2
1            2         5105.9217      336.125209180674    1224        3453
1            2         5105.9217      336.125209180674    2242        4142
1            2         5108.7642      336.124751115092    1224        3453
1            2         5108.7642      336.124751115092    2242        4142
[...]

它必须是这样吗?


我是R的新手,我的知识并不比知道如何制作矢量和一些简单的情节更进一步。在接下来的几个月里,我将使用R作为实习项目,在此期间我将(希望)学习一些R的来龙去脉。然而,在我开始之前,我需要生成我所拥有的数据要做统计数据。我需要事先知道如何格式化输出CSV数据,这样我就可以在开始R分析后轻松读取它。

我被要求做的一件事就是从数据中创建一个CSV文件,以便R可以读取它。用R导入的示例CSV文件我看到的所有文件都是这样的< / p>

featureID    Charge    value
1            2         10
2            0         9

但是,我的数据主要由值包含多个值的列组成。澄清: 作为一个例子,我的数据存在“特征”,其他信息之间有“凸包”。该凸包由成对的x和y坐标组成。所以我可以拥有的数据是(只显示两个坐标,可以很多)

featureID    Charge    Convexhull
1            2         [[{'y': '336.125209180674'}, {'x': '5105.9217'}], [{'y': '336.124751115092'}, {'x': '5108.7642'}]]

是否可以在一个CSV文件中获取它,能够正确读取它(以便保留配对的x和y坐标)?如果是这样,CSV文件应该如何?例如,我已经看到了具有多个值的CSV文件的示例:

featureID    charge    xcoordinate    ycoordinate
1            2         5105.9217      336.125209180674
                       5108.7642      336.124751115092
2            0         2434.9217      145.893331325278

但我无法找到这是否很容易被R导入。

如果在一个CSV文件中无法做到这一点,那么CSV文件是否可以轻松导入,具有主键概念,如数据库链接?

2 个答案:

答案 0 :(得分:2)

唯一关键的事情是,您的数据列之间存在唯一的字符,并且每列的长度相同。只要填写了上一个示例中的第二行,就可以导入。

您需要考虑在R之后想要对数据做什么,以便事先决定如何进行任何其他特殊格式化。但是,只要列分隔符是唯一字符且列长度相等,它就会导入。

(如果您的条目用引号括起来,您可以违反唯一的分隔符要求。如果您想真正想要的话,几乎可以“导入”任何东西。但如果有人要求您格式化数据,那么他们可能想要一个矩形data.frame兼容的布局。他们可能希望每列中都有唯一的值(没有列的列)。但这是你和他们之间的。)

答案 1 :(得分:2)

长篇与宽型。您的最后一个示例称为长格式(除了应填写所有单元格),您的第一个示例大致是宽格式,如?reshape页面所述,并在该页末尾的示例中进行了说明。你可能想坚持长篇大论。有关替代方案,请参阅reshape2包。

save&amp;负载即可。请注意,如果您只是将其写出来以便稍后再读回R(而不是将其与其他软件进行通信),则可以使用saveload这些不需要任何更改完全是对象。

<强> JSON 即可。给出您的示例形式的另一种可能性是您可能希望查看rjson package