Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R无法检测到加载的文件中有多个列_R - Fatal编程技术网

R无法检测到加载的文件中有多个列

R无法检测到加载的文件中有多个列,r,R,我要做的是将我所在子目录中的每个文件都移到左边一个列标题名称上 我试图通过在for循环中使用fread来实现这一点: library(data.table) ## I need to write this script to reorder the column headers which are now apparently out of wack ## I just need to shift them over one filelist <- list.files(pattern

我要做的是将我所在子目录中的每个文件都移到左边一个列标题名称上

我试图通过在for循环中使用
fread
来实现这一点:

library(data.table)
## I need to write this script to reorder the column headers which are now apparently out of wack
## I just need to shift them over one
filelist <- list.files(pattern = ".*.txt")

for(i in 1:length(filelist)){
  assign(filelist[[i]], fread(filelist[[i]], fill = TRUE))
  names(filelist[[i]]) <- c("RowID", "rsID", "PosID", "Link", "Link.1","Direction", "Spearman_rho", "-log10(p)")
}
我得到以下错误:

Error in fread(filelist[[i]], sep = "\"", fill = TRUE) : 
  sep == quote ('"') is not allowed

如果有任何帮助,我们将不胜感激。

您能否运行以下代码,以便更仔细地了解您正在将哪些内容放入文件列表中

i <- 1
assign(filelist[[i]], fread(filelist[[i]], fill = TRUE))
print(filelist[[i]])

i我认为问题在于,尽管名称不同,
list.files
返回的是字符向量,而不是
list
。因此,使用
[[
是不对的。然后,使用
分配
,您可以创建一个与文件同名的对象(这不是很好的做法,最好使用列表)。然后尝试修改所创建对象的名称,但仅使用对象名称的字符串。要使用名称位于字符串中的对象,需要使用
get
(这就是为什么使用
列表
优于创建一组对象的部分原因)


更明确地说,让我们假设
filelist=c(“data1.txt”、“data2.txt”)
。然后,当
i=1
时,此代码:
assign(filelist[[i]],fread(filelist[[i]],fill=TRUE))
创建一个名为
data1.txt
的数据表。但您的下一行是
names(filelist[[i]])这很好。非常感谢。问题:您如何能够使用
fread
而不显式输入
input
参数?另外,您如何能够不使用括号输入其他参数?这就是
lappy
的功能。
lappy(inputs,foo,bar=x,baz=y)
列表(foo)的快捷方式(输入[1],bar=x,baz=y),foo(输入[2],bar=x,baz=y),foo(输入[3],bar=x,baz=y),…)
lappy
的所有参数都传递给函数参数中的任何函数。
Error in fread(filelist[[i]], sep = "\"", fill = TRUE) : 
  sep == quote ('"') is not allowed
i <- 1
assign(filelist[[i]], fread(filelist[[i]], fill = TRUE))
print(filelist[[i]])
filelist[[i]] <- fread(filelist[[i]], fill = TRUE)
filelist <- list.files(pattern = ".*.txt")
datalist <- lapply(filelist, fread, fill = TRUE)
names(datalist) <- filelist
for(dt in datalist) setnames(dt, c("RowID", "rsID", "PosID", "Link", "Link.1","Direction", "Spearman_rho", "-log10(p)"))
my_names <- c("RowID", "rsID", "PosID", "Link", "Link.1","Direction", "Spearman_rho", "-log10(p)")
datalist <- lapply(filelist, fread, fill = TRUE, col.names = my_names)