2011-11-30 19 views
5

Me gustaría crear una matriz asociativa en R a partir de una cadena como "key1=values1;key2=value2". Sé que esto se puede hacer dividiendo en dos y construyendo el arreglo manualmente, pero me preguntaba si ya hay algo con lo que puedo trabajar.Matriz asociativa de la cadena

+0

posible duplicado de [R Convertir par en data.frame] (http://stackoverflow.com/questions/8127869/r-convert-key -val-pair-into-data-frame) –

Respuesta

10

El uso de un entorno como el "conjunto asociativo" proporciona una solución directa.

string <- "key1=99; key2=6" 

# Create an environment which will be your array 
env <- new.env() 

# Assign values to keys in the environment, using eval(parse()) 
eval(parse(text=string), envir=env) 

# Check that it works: 
ls(env) 
# [1] "key1" "key2" 
env$key1 
# [1] 99 

as.list(env) 
# $key1 
# [1] 99 

# $key2 
# [1] 6 
2

Aquí es un enfoque usando eval(parse)

string <- c("key1 = 10, key2 = 20") 
eval(parse(text = paste('list(', string, ")"))) 
$key1 
[1] 10 

$key2 
[1] 20 
Cuestiones relacionadas