Me gustaría automatizar el proceso de creación de resultados cuando aplico ciertas técnicas de modelado. Así que tendré diferentes parámetros que se aplicarán (por ejemplo, distancias de agrupamiento jerárquicas y métodos de vinculación). Los resultados tendrán una forma de matriz para que pueda acceder a los resultados individuales al especificar los parámetros del modelo (por ejemplo, solo, euclidiano). En un marco de datos podría nombrar las columnas y filas y acceder a los elementos simplemente por df[rname[1],cname[1]]
. Hasta donde he leído, no es posible usar objetos de marcos de datos para almacenar los resultados de la lista. Entonces necesito listas para almacenar los resultados de la lista. Pero en las listas solo puedo especificar lst$cname[1]
y no ambas dimensiones. ¿Estoy en lo correcto?¿Cuál es una buena estrategia en R para almacenar resultados en forma de lista para acceder más tarde por nombres en lugar de índices?
# data frame layout for numeric results does not work with list results
rname<-c("u","v","w")
cname<-c("ave","single")
# dataframe for results but does not work for results which are lists
paste.1<-function(x,y) paste(x,y,sep=".")
df1<-data.frame(lapply(cname,paste.1,x=rname),row.names=rname)
colnames(df1)<-cname
# creating list for results - do not get a good idea to proceed from here Advices??
lst<-(lapply(cname,paste.1,x=rname))
names(lst)<-cname
# results example - could be anything else
# with a dataframe I could use df1[rname,cname]<-foo(rname,cname)
# with lists I guess its not as easy
require(graphics)
ave.u <- hclust(dist(USArrests,"euclidean"), cname[1])
ave.v <- hclust(dist(USArrests,"maximum"), cname[1])
ave.w <- hclust(dist(USArrests,"manhattan"), cname[1])
single.u <- hclust(dist(USArrests,"euclidean"), cname[2])
single.v <- hclust(dist(USArrests,"maximum"), cname[2])
single.w <- hclust(dist(USArrests,"manhattan"), cname[2])
Bueno, no estoy seguro de si hay una solución que supongo que debe existir. Al final solo quiero acceder a los resultados de la lista a través de los nombres de las filas y los nombres de las columnas. Sé que podría transferir nombres de fila/columna a numéricos y luego jugar asignando índices adecuados para encontrar mis resultados en una lista de longitud (rname
) x longitud (cname
) pero dado que el marco de datos es tan agradable de usar, lo estoy asumiendo debe ser una manera fácil de almacenarlo más fácil de usar. También podría ser que no haya entrado bien en el concepto de listas, ya que estoy empezando a jugar con R. Entonces mi pregunta es: ¿cuál sería una buena estrategia para almacenar los resultados estructurados (que son listas)? usando R?
¿Es posible que realmente pueda convertirlo en un marco de datos?Por lo que yo entiendo, el marco de datos tiene que ser rectangular, mientras que la lista puede ser de cualquier dimensión. – Sam
Los marcos de datos AFAIK en r se implementan como listas de la misma longitud. – richiemorrisroe
Creo que esta pregunta es terriblemente confusa, especialmente el ejemplo. Una descripción clara de lo que estás tratando de lograr sería muy útil. – Ista