【发布时间】:2019-08-20 22:52:28
【问题描述】:
我有 2 个名为 In1B_HZM_VC_Suppl_astaxanthin.txt 和 In2B_HZM_VC_Suppl_beta-carotene.txt 的 txt 文件,结构如下:
#txt1
Result1 GSK3B SNCA SOD2 APP NDUFS7 CAT KCNJ6 TNF PIK3R1 NOS2 EDN1 GSR NOS3 NDUFB6 CASP3
Result2 NDUFS8 NDUFS2 NDUFS3 ETFDH NDUFV2 SDHA SDHB NDUFV1 NDUFS1 NDUFS7
Result3 COQ2
#txt2
Result1 DDR1 CXCL8 MMP1 PTGS2 RPS6KA5 TNNT2
Result2 NQO1 IL1B CYP1A1 SP1 LEPR TNF POR HMOX1 TP53 GRIN1 NFE2L2 GJA1
我正在尝试找到一种方法将这 2 个文件作为单独的数据框导入,因为它们位于我的工作目录中的同一文件夹中。
我试过了:
files <- list.files(path = "C:/Users/user/Documents/HZM/SourceDatasets", pattern = "*.txt", full.names = T)
创建他们的模式和名称的列表
然后:
myfiles = lapply(files, read.delim)
或
for (i in 1:length(files)) assign(files[i], read.delim(files[i]))
或
list2env(
lapply(setNames(files, make.names(gsub("*.csv$", "", files))),
read.delim), envir = .GlobalEnv)
这给了我一个错误信息:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
more columns than column names
我也试过了:
##Create list of data frame names without the ".csv" part
names <-substr(files,44,68)
###Load all files
for(i in names){
filepath <- file.path("C:/Users/user/Documents/HZM/SourceDatasets",paste(i,".txt",sep=""))
assign(i, read.delim(filepath,
colClasses=c("character","factor",rep("numeric",4)),
sep = "\t"))
}
但我的 txt 文件的名称大小不一。
你可以找到文件here
【问题讨论】:
-
为什么
myfiles = lapply(files, read.delim)不起作用?也许您需要将更多参数传递给read.delim。 -
喜欢你看到的文件
-
我附上了它们
标签: r