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

时间:2012-08-22 08:54:38

标签: 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))

我可以通过

获得非常接近的东西
data.frame(dose,I(resp))

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

所需格式为:

10 .3
20 .4
20 .45
20 .48
30 .6
30 .59
40 .8
40 .76
40 .78
50 .9

1 个答案:

答案 0 :(得分: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