如何将矢量和列表列表转换为R中的data.frame?

use*_*353 9 r dataframe

基本上我是在向量和列表的列表之后,其中LoL具有任意长度.

dose<-c(10,20,30,40,50)  
resp<-list(c(.3),c(.4,.45,.48),c(.6,.59),c(.8,.76,.78),c(.9))
Run Code Online (Sandbox Code Playgroud)

我可以得到一些非常接近的东西

data.frame(dose,I(resp))
Run Code Online (Sandbox Code Playgroud)

但这不太对劲.我需要扩展列表的resp列,将值与剂量列配对.

所需的格式是:

10 .3
20 .4
20 .45
20 .48
30 .6
30 .59
40 .8
40 .76
40 .78
50 .9
Run Code Online (Sandbox Code Playgroud)

And*_*rie 14

这是一个使用rep()和的解决方案unlist().

  • 使用rep重复的元素dose,其中的每一个元素的长度resp.
  • 使用unlistresp成矢量

代码:

data.frame(
  dose = rep(dose, sapply(resp, length)),
  resp = unlist(resp)
)

   dose resp
1    10 0.30
2    20 0.40
3    20 0.45
4    20 0.48
5    30 0.60
6    30 0.59
7    40 0.80
8    40 0.76
9    40 0.78
10   50 0.90
Run Code Online (Sandbox Code Playgroud)