![](/img/trans.png)
[英]R - "Error in file(file, ifelse(append, "a", "w")) : cannot open the connection"
[英]Error in file(file, ifelse(append, “a”, “w”)) : invalid 'description' argument
我正在尝试创建一个 function,它需要一个至少包含 100 个变量的数据帧并将其切片,这样我就可以得到多个 dfs,这些 dfs 始终包含前 5 个变量,然后是其余变量中的 10 个,然后写入生成的切片. 我想要自动化的示例:
First_slice <- df1[,c(1:5, 6:15)]
Second_slice <- df1[,c(1:5, 16:25)]
我的 function
Auto.Slice <- function(df, base= 'slice'){
x <- seq(6, 194, 10) #vector with the starts of my slices
#print(x)
#View(df)
One.Slice <- function(df1, x=NULL, base){
#View(df1)
y <- if (x+9 <= ncol(df1)) x+9 else ncol(df1)
#print(y)
df2 <- df1[,c(1:5, x:y)]
#View(df2)
#print(base)
file_name <- paste(base, x,'_', y, '.csv', sep ='')
#print(file_name)
write.table(df2, file_name, row.names = F, sep='\t', col.names = T)
}
One.Slice(df, x, base)
}
Auto.Slice(df = MS)
为了识别错误,我添加了几个“打印”语句,我发现问题出在我想将每个切片写入 a.csv 时。
我还没有找到解决这个问题的答案。 有趣的是,当我写出 write 语句时,它就起作用了。
错误信息
文件中的错误(文件,ifelse(附加,“a”,“w”)):无效的“描述”参数
好吧,没关系,我意识到变量 'file_name' 是一个字符向量,其中包含我切片的所有名称。 为了解决这个问题,我使用了一个 for 循环。
Auto.Slice <- function(df, base= 'slice'){
x <- seq(6, 194, 10) #vector with the starts of my slices
One.Slice<-function(df1, x=NULL, base){
y <- if (x+9 <= ncol(df1)) x+9 else ncol(df1)
df2 <- df1[,c(1:5, x:y)]
file_name <- paste(base, x,'_', y, '.csv', sep ='')
for (i in file_name){
write.table(df2, i, row.names = F, sep='\t', col.names = T)
}
}
One.Slice(df, x, base)
}
Auto.Slice(df = MS)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.