我在下面的示例中列出了類似xyz的列表。從列表中提取信息
> x <- list(a=c("cat", "dog"), b=c("parrot", "chicken"), c=c("animal", "monkey"))
> y <- list(a=c("cat", "dog"), b=c("parrot", "chicken"), c=c("animal", "monkey"))
> z <- list(a=c("cat", "dog"), b=c("parrot", "chicken"), c=c("animal", "monkey"))
> xyz <- list(x, y, z)
> xyz
[[1]]
[[1]]$a
[1] "cat" "dog"
[[1]]$b
[1] "parrot" "chicken"
[[1]]$c
[1] "animal" "monkey"
[[2]]
[[2]]$a
[1] "cat" "dog"
[[2]]$b
[1] "parrot" "chicken"
[[2]]$c
[1] "animal" "monkey"
[[3]]
[[3]]$a
[1] "cat" "dog"
[[3]]$b
[1] "parrot" "chicken"
[[3]]$c
[1] "animal" "monkey"
現在我想提取xyz中每個列表存儲在$ b中的信息。
xyz的長度會隨時變化,所以也會在xyz列表中列b的長度。但它總是列b,我喜歡從中提取信息。
期望的輸出是每列表中列b中具有信息的向量。
> desired_output <- data.frame(x=c(xyz[[1]]$b, xyz[[2]]$b, xyz[[3]]$b))
> desired_output
x
1 parrot
2 chicken
3 parrot
4 chicken
5 parrot
6 chicken
我的數據看起來更像。
> x <-list(df=data.frame((c(data.frame(a=c("cat", "dog"), b=c("cat", "dog"))))))
> x <-list(df=data.frame((c(data.frame(a=c("cat", "dog"), b=c("cat", "dog"))))))
> y <-list(df=data.frame((c(data.frame(a=c("cat", "dog"), b=c("cat", "dog"))))))
> z <-list(df=data.frame((c(data.frame(a=c("cat", "dog"), b=c("cat", "dog"))))))
> xyz<- list(x,y,z)
> class(xyz[[1]])
[1] "list"
> class(xyz[[1]]$df)
[1] "data.frame"
> xyz[[1]]$df$b
[1] cat dog
現在我想在by中爲xyz中的每個數據幀提取信息。
感謝您快速評論。我現在看到我的名單結構略有不同。 unlist(lapply(xyz,「[[」,「b $ c」)) 這不會工作嗎? – samot79
你有一個名爲b的數據框架嗎? – Nate
是..對不起,重複,並沒有解決我的問題。我有一個列表清單。每個列表都包含一個數據框,並且我想提取數據框「b」列中的所有信息。 我會寫一個更好的問題,如果我沒有找到答案。 感謝您的幫助。 – samot79