ฉันมีรายการดาต้าเฟรม 5 รายการดังนี้:
mydf <- data.frame(x=c(1:5), y=c(21:25),z=rnorm(1:5), p=rnorm(2:6), f=rnorm(3:7))
mylist <- rep(list(mydf),5)
names(mylist) <-c("2006-01-01","2006-01-02","2006-01-03","2006-01-04","2006-01-05")
ฉันยังมีสูตร 3 ขั้นตอนและโค้ดต่อไปนี้ที่ฉันรวบรวม:
ขั้นตอนที่ 1 - รหัสสำหรับสิ่งนี้จะเป็นดังนี้ ซึ่งจะต้องคำนวณสำหรับทุกแถวของคอลัมน์เดียวกัน ถ้า x เป็นองค์ประกอบของ "z" , "f" หรือ "p" แล้ว:
z = x - mean(column))/sd(column)
2 - ปรับสเกล z คะแนนจาก 0 โดยใช้ค่าจากขั้นตอนที่ 1
rz = abs(min(z)) + z
3 - ปรับสเกลคะแนน RZ จากขั้นตอนที่ 2 โดยให้อยู่ระหว่าง 0 ถึง 1
mrz = rz/max(rz)
ฉันต้องใช้สูตรนี้ กับคอลัมน์ "z", "p", "f" เท่านั้น ด้วย objective_col <- colnames(mylist$'2006-01-05'[,3:5])
ในทุกองค์ประกอบของ mylist
โดยใช้ apply
, sapply
, lapply
หรือการวนซ้ำประเภทอื่น:
มันอาจจะมีลักษณะดังนี้:
lapply(mylist, FUN = function(x) .......)
ผลลัพธ์ควรอยู่ในเค้าโครงและรูปแบบเดียวกันกับ mydf
ทั้งหมดจัดเก็บไว้ใน mylist2 <- list()
ฉันจะอัปเดตสิ่งนี้ต่อไปเมื่อมีความคืบหน้ามากขึ้น ฉันยังคงเรียนรู้วิธีใช้ลูปและฟังก์ชันต่างๆ อยู่.. ขอบคุณทุกคนที่สามารถให้ข้อมูลบางส่วนได้