使用R

时间:2019-03-30 10:08:15

标签: r text

我有一个大文本文件,其中包含来自美国所有50个州的数据。我想使用R或Rstudio将数据剔除到纽约州,因为我想对其进行地理编码。我可以使用Rstudio轻松对框架中的数据进行排序,但无法从那里将其放入单独的文本文件中。我是R新手,很明显缺少基本知识。

该文件比Excel可以处理的大得多。 Filemaker 17无法容纳文件“ ^”中使用的定界符。 Sublime文本中的选择非常笨拙,弄乱了我的定界符。

试图使用write.csv-write.csv(变量,文件名,row.names = F)-它使我感到困惑,因为它似乎无法确定如何将变量从文件中拉出,并且提供了各种错误。甚至不确定这是否是最好的举动。

期望从纯文本文件(.txt)中简单地提取约200,000条针对纽约州的记录,以便对数据进行地理编码。做不到。

1 个答案:

答案 0 :(得分:0)

假设您在R中拥有完整的数据集(称为states)作为数据框,则可以创建其单独的子集,也可以从其中删除除NY之外的所有状态

子集:

ny <- states[states$state == "NY", ]

您可以在此处创建一个新的数据框(ny)。

删除除纽约州以外的所有州:

states <- states[states$state == "NY", ]

此处的区别在于,您只需用修改后的框架覆盖原始数据框架即可。

如果您不需要纽约以外的州,那么从内存方面来说,如果您打算以某种方式操纵它,则最好覆盖原始数据帧。

例如,更改值和/或数据帧的结构将占用更多的内存,因为共享相同数据(即未修改的子集)的数据帧仅指向同一数据副本,因为它存在于一个内存中扇区,原始数据帧和子集数据帧都指向它(原始对象指向整个数据集,子集仅指向它的一部分,从而节省了内存(假设它是未修改的))。 / p>

仅当您修改所述子集时,才会制作单独的副本,从而占用更多空间。

但是,如果您怀疑将来需要修改其他状态数据,建议您创建一个子集并从中使用它作为源。