2014-10-20 69 views
0

我想遍歷下面的每個變量並打印變量的名稱(例如「variable1」),但也會在變量值中打印變量值(例如5)登錄。任何幫助,將不勝感激,謝謝如何將字符串解析爲變量

variable1 <- 5 
variable2 <- 3 
variable3 <- 1 

variable_list <- c("variable1", "variable2", "variable3") 

for (i in variable_list) { 
    print(i) 
} 
+2

嘗試'打印(C(I,得到(I)))' – akrun 2014-10-20 14:03:37

+0

感謝快速回復! – 2014-10-20 14:07:02

+1

我不知道是否像as.matrix(unlist(mget(ls(pattern =「variable \\ d +」))))'會爲你工作(沒有循環)。或者只是'unlist(ls(pattern =「variable \\ d +」)))' – 2014-10-20 14:25:32

回答

1

你也可以這樣做:

for(i in variable_list){ 
    cat(paste0("\t", sprintf("%s %d \n", i, get(i)))) 
} 

回報:

variable1 5 
variable2 3 
variable3 1 
+0

希望我可以改變縮進,但至少需要6個字符變化:( – phonixor 2014-10-20 14:19:48

+0

@phonixor請檢查縮進是否可以 – akrun 2014-10-20 14:25:56

+0

我的意思是for循環:P – phonixor 2014-10-20 14:41:53

1

我更喜歡其他的人回答,但更一般的,你可以執行的字符串R代碼 通過使用evalparse的組合

variable1 <- 5 
variable2 <- 3 
variable3 <- 1 

variable_list <- c("variable1", "variable2", "variable3") 

for (i in variable_list) { 
    print(i) 
    print(eval(parse(text=i))) 
} 

回報:

[1] "variable1" 
[1] 5 
[1] "variable2" 
[1] 3 
[1] "variable3" 
[1] 1