从凌乱的文本在Excel中创建表

时间:2018-01-08 14:32:33

标签: r excel text

我想清理我的文本数据并将其转换为excel表以便在R中进一步使用。我已设法将我的杂乱数据放入文本文档中,其中500行对应于500个观察值。它们的结构类似于:

Name$Johnny Cash$Birth$1932$Gender$Male$Occupation$Singer$Death$2003
Name$Elvis Presley$Birth$1935$Gender$Male$Death$1977$Occupation$Singer
Name$June Carter$Birth$1929$Gender$Female$Occupation$Singer$Death$2003

这最终应该是这样的:

image

我已经开始使用Excel中的“text to column”函数了。如果行完全相似,那么我可以使用这些公式:

=IF(ISODD(COLUMN(A1)),A1,"")
=IF(ISEVEN(COLUMN(B1)),B1,"")

这将使我的表看起来像这样: enter image description here

但是,我所拥有的数据不是那样的 - 有时候,条目的顺序不同(首先是死亡,然后是职业),有时,缺少一个类别,例如在这个例子中: enter image description here

我不知道如何从这里走得更远 - Excel中是否有一个可以帮助我的宏,或者我会更好地尝试以某种方式在R中实现这一点? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将文本文件整理为csv文件(逗号分隔值),并在Excel或R中轻松打开它。

文本文件如下所示。如您所见,每一行都是一个主题:

"name", "birth", "gender", "occupation","death"
"Johnny Cash", 1932, "male", "singer", 2003

要将文本文件重新格式化为csv,您只需将其替换为例如"的名字$"用"在所有行。将$ birth $替换为","。你必须有点创意才能在正确的地方得到逗号和引号,但它可以做到。最后添加包含标题的第一行,即:

 "name", "birth", "gender", "occupation","death"