我正在尝试读取n个.txt文件的列表,并将内容保存到一个字符列表中。然而,当我阅读它们并将它们添加到列表"txts"中时,会出现错误:"读取32项要更换的物品数量不是更换长度的倍数">
每个txt文件包括32行32个字符("0"s和"1"s(。在第一步中,我想获得一个n个元素的列表(每个元素有32个项目,每个项目有32个字符(,其中包含txt文件的内容。
然后,我需要将32x32个字符中的每一个转换为1x1024矢量(我将使用strstrip(,最后我需要有一个n(txts的数量(行和1024列(每个txt文件的字符数量(的矩阵。
使用下面的内容,我试图创建两个txt文件的内容列表,但给了我一个错误。我使用扫描是因为我需要txt文件中的所有字符。我试过read.table,它很好用,但它能把它们转换成数字,我不想这样。
file_example <-list("digits/trainingDigits/0_0.txt","digits/trainingDigits/0_1.txt")
txts <- c()
for (i in file_example){
nb = scan(s,what="character", sep=NULL)
txts[s] <- c(nb)
}
有什么解决办法吗?我希望它足够清楚。
谢谢!!
更新:
我尝试了以下代码:
file_example <- c("digits/trainingDigits/0_0.txt","digits/trainingDigits/0_1.txt")
txts <- c()
mylist <- list()
for (i in 1: length(file_example)){
nb = read.csv(file_example[[i]])
txts[s] <- c(nb)
txts <- as.character(nb$X)
mylist[[i]] <- txts
}
然而,我得到的是一个由两个元素组成的列表,在32个数字内,但我认为字符没有保留。
两个列表中的第一个元素:
[[1]][1] "1.111111 e+19"1.111111111 e+21"[6] "1.111111 0000000 1e+25"1.11111 0000000 1e+25"br>[21]"1.111000000000001e+24"1.11100000000011e+24"1.111000000000111e+24"1.11100000111111e+23"1.111100011111e+23[26]"1.1111111111111 e+23"1.1111111 e+22"1.111 1111111 e+2 2"1 11111111 e+21"1.1111 e+20">
[31]"1.1e+19">
最终目标是为每个.txt文件获取该值,这样就可以将其转换为具有1024个元素的向量:
"[1]0 0 0 0 1 0 0 0 00 0 1 1 1 0 0 00000 0 0 0\0000\000\0 1 1 0 1 1[64]0 0 0 0零0 0 0 1 1 1 1 11 1 1 1 0 0 0[127]0 0 0 0 1 0 0 1 1 1 1 11 1 1 1 0 1 1 0 0 0[190]0 0 0 0 1 1 1 1 0 0 0[253]0 0 0 0零0 0 0 1 1 1 1 0 0 0[316]0 0 0 0 1 1 1 1 0 0 0[379]0 0 0 0 00 0 0 0 1 0 1 1 1 1 0">
这将有1024个字符的
感谢
据我所知,问题是将每个文档存储为列表,并将数值作为字符。事实上,您可以使用as.charachter()
将它们转换回字符这里我提供一个简单的例子。如果您的数据有更多的列,只需将向量txts
更改为矩阵,并添加一个额外的for循环来存储它,为每一行编制索引。
######### Creating the files
a<- c("0", "2","1","1")
b<- c("0","1","1","0")
#### path to read from and store the example
path<-"C:/Users/Carles/Desktop/"
write.csv(a,paste0(path,"a.txt"))
write.csv(b,paste0(path,"b.txt"))
# reading example
file_example<- c(paste0(path,"a.txt"), paste0(path,"b.txt"))
# creating a list to store values
mylist<-list()
for (i in 1:length(file_example)){
nb = read.csv(file_example[i]) # reading the documents
txts <- as.character(nb$x) # getting the vector x since read.csv stores data in dataset form
mylist[[i]]<-txts # passing the texts stored to the list
}
> mylist
[[1]]
[1] 0 2 1 1
[[2]]
[1] 0 1 1 0
我希望它能有所帮助!BR,
PD:下次请提供一个例子。这对于更好地理解问题以及能够重现问题是很重要的