[英]paste input name between words for save it using write.table
我是 R 的超級新手,由於我的工作學位,我已經為自己學習了幾個星期。 我幾乎完成了我需要的統計分析,但它是通過一個丑陋而凌亂的代碼,即對幾個數據幀重復大量代碼,以應用不同的統計測試,保存結果等。現在,為了個人利益,想把這個寫得更好,但我完全陷入了我的無知,真的需要推動才能得到這個想法,拜托了。 例如,我想創建一個函數來測量我使用的所有數據表的相關性,並使用輸入名稱作為輸出名稱的一部分將這些結果保存為表。 我的意思是,如果我們有 iris 數據但在不同季節測量,例如 iris_fall、iris_winter、iris_spring 和 iris_summer,在對每個數據應用cor(X)
方法后,我想將這些結果保存為類似於“mCoriris_fall.txt”的表格、“mCoriris_winter.txt”、“mCoriris_spring.txt”和“mCoriris_summer.txt”。 我現在無用的代碼說:
cor_PQ<-function(X) {
cor_PQ<-cor(X, use="pairwise.complete.obs")
return(cor_PQ)
}
savecor<-function(t) {
outputname<-(paste0("mCor",t)) #HOW DO I CALL THE NAME OF THE INPUT? t is cor_PQ result matrix.
savecor<-write.table(t, file=paste0(outputname,".txt"))
return(savecor)
}
cor_PQ(Iris_fall)
我希望獲得cor
結果並將其保存為我的工作區中的表格,使用輸入名稱作為輸出名稱的一部分。 我知道這是 2 個獨立的函數,寫表的函數應該在cor(x)
函數內部,但我無法理解。 我讀了很多書,但我無法完全記在腦海中。 感謝任何可以幫助我的人。 問候。
直到這里它已經解決了......但是在用我的 14 個數據框列出一個列表以應用cor
和其他方法之后, write.table
函數覆蓋了 1 個單個文檔上的 14 個cor
結果。 這是我的代碼。
PQ_files<-list.files(path="C:/Users/Sol/Documents/ProyectoTítulo/CalidadAgua/Matrices/Regs",pattern="\\_PQ.txt")
PQ_data<-lapply(PQ_files, read.table)
names(PQ_data)<-gsub("\\_PQ.txt","", PQ_files)
PQ_data
cor_PQ<-function(X) {
cor_PQ<-cor(X, use="pairwise.complete.obs")
outputname.txt<-paste0("mCor",deparse(substitute(X)),".txt")
write.table(cor_PQ, file=outputname.txt)
outputname.pdf<-paste0("Cor",deparse(substitute(X)),".pdf")
pdf(outputname.pdf)
plot(X)
dev.off()
return(cor_PQ)
}
for (i in seq_along(PQ_data)){
Correlaciones<-lapply(PQ_data,cor_PQ)
}
Correlaciones
在 SUM 上:似乎工作得幾乎很好,直到write.table
和plot(x)
用名稱mCor[[i]]
和CorX[[i]]
覆蓋了我的PQ_data
上的 14 個數據幀的輸出。 我應該以某種方式定義 [i] 以使每個結果都具有正確的名稱嗎? 此外,當我最后運行Correlaciones
時,我可以在一個數據幀中看到 14 個數據幀的cor
結果,但我不知道如何正確拆分它們。 我想快到了。 再次感謝!
您可以組合這兩個函數並使用deparse
substitute
將輸入名稱作為字符串
cor_PQ <- function(X) {
cor_PQ<-cor(X, use="pairwise.complete.obs")
outputname<- paste0("mCor",deparse(substitute(X)), ".txt")
write.table(t, file=outputname)
return(cor_PQ)
}
然后打電話
cor_PQ(Iris_fall)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.