我们在R中有如下的数据框:
df <- data.frame(sample=rnorm(1,0,1),params=I(list(list(mean=0,sd=1,dist="Normal"))))
df <- rbind(df,data.frame(sample=rgamma(1,5,5),params=I(list(list(shape=5,rate=5,dist="Gamma")))))
df <- rbind(df,data.frame(sample=rbinom(1,7,0.7),params=I(list(list(size=7,prob=0.7,dist="Binomial")))))
df <- rbind(df,data.frame(sample=rnorm(1,2,3),params=I(list(list(mean=2,sd=3,dist="Normal")))))
df <- rbind(df,data.frame(sample=rt(1,3),params=I(list(list(df=3,dist="Student-T")))))
第一列包含概率分布的随机数,第二列存储其参数和名称的列表。数据框
df
如下所示: sample params
1 0.85102972 0, 1, Normal
2 0.67313218 5, 5, Gamma
3 3.00000000 7, 0.7, ....
4 0.08488487 2, 3, Normal
5 0.95025523 3, Student-T
问题1: 我如何获得所有记录的名称分布列表?df$params$dist
无法工作。对于单个记录很容易,例如第三个:df$params[[3]]$dist
问题2:是否有其他存储数据的方式,类似于多维数据帧?我不想为每个参数添加列,因为它会在数据帧中散布缺失值。