如何创建保存数据帧的功能

时间:2015-07-13 00:43:32

标签: r

我想创建一个保存数据帧的函数,所以我编码如下:

{% for publisher in publishers %}
    <ul> {{ book.book_publisher }}
        {% for book in publisher.books.all %}
            <li> {{book.book_title }} </li>
        {% endfor %}
    </ul>
{% endfor %}

但我收到了错误:

 save<-function(x)
{
write.table(x, file=paste(x,"csv", sep="."))
write.table(x, file=paste(x,"txt", sep="."))
}
  

文件错误(文件,ifelse(追加,“a”,“w”)):   无效的“描述”参数   另外:警告信息:   在if(file ==“”)file&lt; - stdout()else if(is.character(file)){:     条件的长度> 1,只使用第一个元素

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您的文件名不是字符串,看起来您的文件名是尝试将整个数据框作为字符串与'csv'(paste(x, 'csv', ...)一起粘贴。这是因为x是一个数据帧,而不是字符串,所以R抱怨,因为它不知道如何将整个数据帧转换为单个字符串。

如果您想将文件另存为“x.csv”,请执行file="x.csv"

如果您希望用户能够指定您可以执行的文件名:

 save<-function(x, fname)
{
write.table(x, file=paste(fname,"csv", sep="."))
write.table(x, file=paste(fname,"txt", sep="."))
}
save(summary1, "summary") # saved as summary.csv