2015-09-19 42 views
2

我想澄清一下我的理解,即将文件转换为CSV并读取它。例如,我们使用R的数据集,标题为longley。在R上读取和设置CSV文件编程语言

要建立一个数据框,我可以使用write.table命令如下,对吧?

d1<-longley 
write.table(d1, file="", sep="1,16", row.names=TRUE, col.names=TRUE) 

这已经成为一个数据框架或我在这里失去了什么吗?
现在,让我们说如果我想读取这个CSV文件。那么我的代码会是这样的:

read.table(<dframe1>, header=FALSE, sep="", quote="\"") 

看起来像之前,我不得不使用一个称为setwd()的函数。我不确定它的作用或者它的作用。有人可以帮我吗?

+0

您是否尝试过从命令行键入'?setwd'? – jlhoward

+1

另外,你期望'sep =“1,16”'做什么? – jlhoward

+0

是的,我做到了。我不确定输入是什么,但我也不确定这会为我的代码做什么。 – cambelot

回答

1

longley因此d1已经是数据帧(控制台中的类型为class(d1))。数据帧是R中的基本数据结构。将数据帧写入文件将数据保存在数据帧中。在这种情况下,你想将数据保存在CSV格式的数据帧,其中你会做这样的:

write.csv(d1, "myFileName.csv") 

write.csvwrite.table的包装,需要照顾的需要在保存设置CSV格式。你也可以这样做:

write.table(d1, "myFileName.csv", sep=",") 

sep=","告诉R键写用逗号分隔值的文件。

然后,将文件读入R对话,你可以这样做:

df = read.csv("myFileName.csv", header=TRUE, stringsAsFactors=FALSE) 

这将创建一个名为df新的对象,这是从数据中myFileName.csv创建的数据帧。再次,read.csvread.table的一个包装,用于处理读取CSV文件的设置。

setwd是如何更改工作目录 - 即R写入和读取的默认目录。但是,您也可以保持当前工作目录不变,只需将write.csvread.csv(或任何其他写入或读取R对象的函数)的完整路径发送到您要读取或写入的任何位置。例如:

write.csv(d1, "/path/for/saving/file/myFileName.csv")