Làm cách nào để đánh giá c[,2]
thông qua cuộc gọi đến z
?Tham chiếu biến tiềm ẩn trong R
a <- c(1,2,3)
b <- c(4,5,6)
c <- cbind(a,b)
z <- "c[,2]"
eval(z)
không hoạt động.
Làm cách nào để đánh giá c[,2]
thông qua cuộc gọi đến z
?Tham chiếu biến tiềm ẩn trong R
a <- c(1,2,3)
b <- c(4,5,6)
c <- cbind(a,b)
z <- "c[,2]"
eval(z)
không hoạt động.
Nó có thể là dưới đây:
eval(parse(text=z))
'yêu cầu (vận may); tài sản (106) ' –
Nếu bạn thực sự cần phải tự động lắp ráp một lời gọi hàm và sau đó đánh giá nó, do.call
thường là tốt hơn nhiều (và hiệu quả hơn). Đó là một chút khó khăn để vượt qua các tham số mất tích mặc dù, nhưng TRUE cũng làm việc trong trường hợp này:
z <- c[TRUE,2]
tương đương với:
z <- do.call('[', list(c, TRUE, 2))
Nhưng đây là một hack để có được những biểu tượng mất tích, mà có thể sau đó được sử dụng:
m <- quote(f(,))[[2]] # The elusive missing symbol
z <- do.call('[', alist(c, m, 2))
Bạn đang cố gắng làm gì? Phân tích chuỗi tùy ý không có khả năng là câu trả lời đúng. – hadley
Liên quan: [Biểu thức đánh giá R] (http://stackoverflow.com/q/1743698/2157640) – Palec