2014-10-20 42 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