我想创建一个保存数据帧的函数,所以我编码如下:
{% 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,只使用第一个元素
出了什么问题?
答案 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