我有一个数据是这样生成的:
> dat1 <- data.frame(V1 = rep(1, 5), V2 = sample(c(40:45), 5))
> dat2 <- data.frame(V1 = sample(c(0,1), 5, replace = TRUE), V2 = sample(c(40:45), 5, replace = TRUE))我想要做的是获得一个包含列表列表的数据帧。
> hiv
$hiv.dat1
$hiv.dat1$V1[[1]]
[1] 1 1 1 1 1
$hiv.dat1$V2[[1]]
[1] 41 42 43 40 44
$hiv.dat2
$hiv.dat2$V1[[1]]
[1] 0 1 1 0 0
$hiv.dat2$V2[[1]]
[1] 42 43 40 44 43但是为什么这行命令不能创建它呢?
> hiv <- list(hiv.dat1 = as.list(dat1), hiv.dat2 = as.list(dat2))特别是它给出了"$hiv.dat1$V1“而不是"$hiv.dat1$V1[1]”。
我们该如何纠正这一点呢?我需要一个特定的包(ROCR)所需的这个特定的数据结构。
发布于 2011-02-01 12:37:44
似乎您希望数据框的每个元素都成为自己的列表(长度为1);相反,您的代码会将每个数据框变成一个包含数据框元素的列表。您需要使用lapply将list函数分别应用于每个元素。
hiv <- list(hiv.dat1 = lapply(dat1, list), hiv.dat2 = lapply(dat2, list))发布于 2011-02-01 10:01:25
只有list类型可以为
不同类型和不同长度的对象嵌套(ie recurse)
因此,简而言之,没有数据帧的嵌套,但您可以在列表中堆叠不同的数据帧。
(请不要在此处和r-help上交叉发布。)
https://stackoverflow.com/questions/4858105
复制相似问题