Tôi đã tự hỏi nếu có ai có thể giúp tôi sử dụng tên biến trong một hàm. Tôi đã đặt cùng một ô dấu chấm phân loại các biến và sau đó tạo ra một bitmap, nhưng tôi không thể nhận được R
để chuyển tên biến cho tiêu đề plot
.Vượt qua tên biến để vẽ tiêu đề chức năng
Ví dụ dữ liệu
id<-c(1,2,3)
blood<-c(1,2,10)
weight<-c(1,2,13)
mydata<-as.data.frame(cbind(id,blood,weight))
mydata$blood
#######SORTED DOT PLOT####
Dplotter<-function (id,x,Title=""){
if (is.null(Title)) {Title=""} else {Title=Title}
DIR<-paste("C:/temp/WholePlots/New/",Title,".bmp",sep="")
D<-as.data.frame(cbind(id,x))
x1<-as.data.frame(D[order(x),])
bmp(DIR)
dotchart(x1$x,labels=id,main=Title,pch=16)
dev.off()
}
###############
Dplotter(mydata$id,mydata$blood,"Blood")
Dplotter(mydata$id,mydata$weight,"Weight")
Trong dòng thứ hai của hàm, tôi muốn vượt qua trên tên biến, một cái gì đó giống như
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
vì vậy mà tôi don' t phải đặt "máu" trong trường chức năng Tiêu đề (ví dụ: Dplotter (id $ mydata, mydata $ blood)
Về cơ bản, làm thế nào để dán một tên biến trong một hàm? Nó sẽ tốt hơn nếu ta có thể lấy tên tập dữ liệu từ tiêu đề (mà không kèm theo tập dữ liệu, mà tôi đã nói là xấu thực hành), để thay vì nhận được
mydata$blood
, bạn chỉ nhận được "máu" trong tiêu đề.Tôi đã không tìm thấy giải pháp dễ dàng để dán tên biến trong một hàm. Như bạn có thể đoán, đặt tên biến trong hàm
paste()
trả về giá trị của biến (để tiêu đề cốt truyện được lấp đầy với giá trị thay vì tên biến).Tôi cũng muốn tự động hóa chức năng hơn nữa, để tôi có thể chỉ cần đặt tập dữ liệu và ID, sau đó có chức năng lặp lại cho mỗi biến trong tập dữ liệu. Rõ ràng điều này yêu cầu giải quyết câu hỏi 1 trước, nếu không cả tên sách và tên tệp sẽ gặp phải sự cố .
Cảm ơn bạn rất nhiều. Nó hoạt động thực sự tốt. Có ai có bất cứ đề nghị nào về cách làm 2 (câu hỏi 2, xem ở trên). Ví dụ, làm cho âm mưu foo chạy trong một chức năng khác "PlotALL" mà vượt qua tất cả các biến của một tập dữ liệu từng người một để foo lô? Điều này sẽ cho phép tôi viết ## PlotAll (id, mydata) và nhận tất cả các đồ thị được in. Rất cám ơn –