Básicamente estoy buscando el producto de un vector y una lista de listas donde el LoL tiene longitudes arbitrarias.¿Cómo transformo un vector y una lista de listas en un data.frame en R?
dose<-c(10,20,30,40,50)
resp<-list(c(.3),c(.4,.45,.48),c(.6,.59),c(.8,.76,.78),c(.9))
puedo conseguir algo muy parecido con
data.frame(dose,I(resp))
pero no es del todo bien. Necesito expandir la columna de respuestas de las listas que combinan los valores con la columna de dosis.
El formato deseado es:
10 .3
20 .4
20 .45
20 .48
30 .6
30 .59
40 .8
40 .76
40 .78
50 .9
Bienvenido al desbordamiento de la pila! +1 para [ejemplo reproducible] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – Andrie
Solo para estar seguro: 'dose' siempre tiene tantos elementos como elementos de lista en' resp'? Y solo por interés, ¿qué planeas hacer con la matriz de salida? Podríamos sugerir un "atajo" para su último requisito. –
@Carl Sí, los valores de dosis se emparejan con las listas en la lista resp (respuesta). Solo hay un número desconocido de dichos emparejamientos para cada dosis. El data.frame de salida se usa en drm para ajustar una curva de regresión. Estaba haciendo algo así como 'unlist (lapply (resp, mean))' pero aunque esto me da la curva de regresión, causa problemas para 'modelFit()', finalmente encontré que tenía que darle a la regresión los valores en bruto para obtener mis estadísticas de bondad de ajuste, de ahí la necesidad de transformarme en pares crudos de dosis/respuesta. – user1616353