我是R新手试图写他的第一个剧本。我在for循环中遇到了问题。 在我的代码中,我从2个向量中创建2个列数据帧,共享一个部分通用名称。我使用for循环为这些常用名称(由vector a定义)执行此操作。
paste("A",1:4,sep="")->a
for ( i in a) {
j<-grep(x= ls(pos=1), pattern=i, value=TRUE)
data.frame(do.call(cbind,mget(j)))-> k
print(k)
}
这有效,但是当我想使用此代码将这些数据框打印为单独的csv文件时,我遇到了问题:
for ( i in a) {
j<-grep(x= ls(pos=1), pattern=i, value=TRUE)
data.frame(do.call(cbind,mget(j)))-> k
print(k)
write.table (k, file = paste("Results_",i, sep=''))
}
显示的错误如下所示
Error in file(file, ifelse(append, "a", "w")) :
invalid 'description' argument
In addition: Warning message:
In if (file == "") file <- stdout() else if (is.character(file)) { :
the condition has length > 1 and only the first element will be used
此外,fllwing已经有效,但当然只创建了上一次迭代的一个csv文件
for ( i in a) {
j<-grep(x= ls(pos=1), pattern=i, value=TRUE)
data.frame(do.call(cbind,mget(j)))-> ff
print(ff)
write.table (ff, file = "results_df.csv")}
谢谢!
答案 0 :(得分:0)
文件错误的关键是:
文件错误(文件,ifelse(追加,&#34; a&#34;,&#34; w&#34;)):无效 &#39;描述&#39;参数另外:警告消息:在if(file == &#34;&#34;)file&lt; - stdout()else if( is.character(file)){:条件 有长度&gt; 1 ,只使用第一个元素
&#39;文件&#39;显然是一个向量而不是一个字符串。
这可能不是唯一的问题。