将 .txt 文件读取到 R 中的选项卡

Posted

技术标签:

【中文标题】将 .txt 文件读取到 R 中的选项卡【英文标题】:Reading .txt file to tab in R 【发布时间】:2016-02-27 13:36:56 【问题描述】:

我想在 R 中读取由这行导出的 .txt 文件:

cat(sprintf("%s\n",paste0(matematykData)),file=nazwapliku2,append = TRUE)

该行处于循环中,因此它逐行保存,并且变量 matematykData 是一个 1dim 选项卡,其中仅包含一条记录,该记录在下一次“for循环”运行时被另一条记录替换,它看起来像这样:

[1] "1884"

我在另一个R脚本中使用的阅读方法是:

dane2=read.table(file=nazwapliku2,sep="\n",skipNul= FALSE)

从这里我得到一个没有任何行和列的字符串,如下所示:

2962   1847
2963   1866
2964   1906
2965    429
2966    450
2967    450
2968   1910
2969   1900
2970   1889

第一个“列”是行数。我想将该字符串转换为制表符,以便我可以引用它的每一行,只需使用 dane2[i] 其中“i”是我正在寻找的行数。我不确定是否应该更改保存或读取它的方式,或者我应该只是读取它然后转换它。

我还有其他需要转换的变量,而且它更复杂,因为它每行包含 3 条记录:全名、出生日期和地点、死亡日期和地点。我保存的方法是一样的:

cat(sprintf("%s\n%s\n%s\n",paste0(matematyk[1]),paste0(matematyk[2]),paste0(matematyk[3])),file=nazwapliku1,append = TRUE)

【问题讨论】:

这里不要使用 sep="\n" 那么我应该使用哪个分隔符? \t ? 你应该使用你在单行元素之间使用的分隔符。 更改似乎对此没有任何影响。我通过读取文件从文件中获得的输入仍然是一个字符串。也许有一种方法可以使用 strsplit 或类似的东西。 【参考方案1】:

对于第一种情况,它应该使用 dane2[i] 作为行号。

您必须区分记录和变量。 在第二种情况下,我理解您有几条记录,每条记录有 5 个变量

全名、出生日期、出生地点、死亡日期、死亡地点

在这种情况下,您需要更改保存数据的方式。在变量之间,您需要使用例如 \t 来分隔变量,并且只使用 \n 作为格式字符串中的最后一个,以便 sprintf() 调用来分隔各个记录。

【讨论】:

以上是关于将 .txt 文件读取到 R 中的选项卡的主要内容,如果未能解决你的问题,请参考以下文章

r语言怎么读取txt文件

将txt文件中的行批量读取到变量中

如何在matlab中读取TXT数据文件

matlab怎样按列读取txt中的数据到数组啊

R语言如何按行读取无序的TXT

用STM32在SD卡里面建立TXT文档存数据,并读取数据