Я пытаюсь вставить столбец в пакет txt-файлов в указанном c месте, каждый из которых имеет разные номера строк / длину: каждый типичный файл будет иметь 132 столбца. Естественно, размер файла варьируется от 1 до 10 МБ каждый. Код, кажется, работает нормально, без жалоб, и я получил все свои файлы. Естественно, все новые текстовые файлы должны быть больше, так как я вставил в них новый столбец. И это касается некоторых файлов. Тем не менее, я заметил, что некоторые сгенерированные файлы поразительно малы (~ 7 КБ по сравнению с 14 КБ ранее).
Затем я go смотрю на фрейм данных, однако выглядит хорошо, так как исходный файл 14 КБ имеет 7143 строки и 132 наблюдения. В то время как новый файл размером 7 КБ содержит 7143 строки и 133 объекта, дополнительный из-за моей инъекции.
Я беспокоюсь, что что-то серьезное пошло не так в моем коде, однако я понятия не имею, что это может быть.
минимальный набор данных:
#file 1
Row <- c(rep("16", 20))
column <- c(rep("3", 20))
Pid<- c(rep("Jack", 20))
Stimulation<- c(rep("3S", 20))
Drug <- c(rep("2DG", 20))
Dose <-c(rep("3uM", 20))
Treatmentsum <-c(rep(paste("Jack","3S",'2DG','3uM',sep = "_"), 20))
PiD_treatmentsum <- c(rep(paste('Jack',"T4_20200501",'3S','2DG','3uM',sep = "_"), 20))
sampleset <-data.frame(Row,column,Pid,Stimulation,Drug,Dose,Treatmentsum,PiD_treatmentsum)
write.table(sampleset, file = "ctrl_Jack_3S_2DG_3uM.txt",sep="\t", row.names = F, col.names = T)
Теперь мой код для обработки всех файлов в каталоге:
library(tibble) #Get the library needed for add_column
input_dir <-"C:/Users/mli/Desktop/inject"
out_dir <-"C:/Users/mli/Desktop/inject/out"
files <- list.files(path=input_dir, pattern="*.txt", full.names=TRUE,, recursive = FALSE)
lapply(files, function(x){
df <- read.csv(x, sep="\t", header=TRUE, fill = T,stringsAsFactors = F)
Baseline_cytokine_cluster <- rep("Cluster_1", nrow(df))#each file has various length so I use nrow as my counter
newdf <- add_column(df, Baseline_cytokine_cluster, .after ="Pid_treatmentsum")
write.table(newdf, file =paste0(out_dir,"/", basename(x)),
sep="\t", quote=FALSE,row.names=F, col.names=TRUE) #trying to write a new txt file into a different folder and keep the original file name
})