Итак, у меня есть каталог .txt файлов. Каждый содержит столбцы, представляющие особенности некоторого измерения. Для файлов в том же каталоге я хочу заменить содержимое одного столбца с именем treatmentsum
на 3S_TNFaCHx_cluster1_333nM+0.1ug/ml_none
. (Я заменю один и тот же столбец с разными именами в разных папках, и да, я знаю, что это имя крайне раздражает, поверьте мне, есть гораздо худшие имена)
Поэтому я подумал, что заменить столбец в кадре данных легко Я просто открываю каталог, затем делаю следующее:
df <- read.table(x, header=TRUE)
df$treatmentsum <- c("3S_TNFaCHx_cluster1_333nM+0.1ug/ml_none")
Далее мне просто нужно сделать эту функцию и lapply
ее для всех файлов в каталоге и убедиться, что новые файлы помещены в новый папка.
Полный код не работает:
#set up directories
directory <- "C:/Users/XXX"
outdirectory <- "C:/Users/XXX/replaced"
#find all .txt files in the directory
files <- list.files(path=directory, pattern="*.txt", full.names=TRUE, recursive=FALSE)
lapply(files, function(x) {
df <- read.table(x, header=TRUE)
df$treatmentsum <- c("the new stupid name thanks to pharma")
out <- function(df)
# write to file
write.table(out, outdirectory, sep="\t", quote=FALSE, row.names=FALSE, col.names=TRUE)
})
предупреждение, которое я получил:
Ошибка сканирования (файл = файл, что = что , sep = sep, quote = quote, de c = de c,: в строке 1 не было 744 элементов