从数据框中提取行作为向量列表

时间:2014-11-27 21:36:49

标签: r

例如,我有数据

a <- c("a", "b", "c")
b <- c("x", "y", "z")
df <- data.frame(a = a, b = b)

我想对df做点什么,所以我的结果是

list(c("a", "x"), c("b", "y"), c("c", "z"))

我希望解决方案能够被矢量化,并且我在使用正确的*应用函数时遇到了麻烦...

2 个答案:

答案 0 :(得分:3)

如果您想按行拆分data.frame,请尝试

 split(df, seq.int(nrow(df)))

答案 1 :(得分:1)

这是另一种方式。

as.data.frame(t(df),stringsAsFactors=FALSE,row.names=NA)
#   V1 V2 V3
# 1  a  b  c
# 2  x  y  z

这会产生一个数据帧,实际上是一个向量列表。如果您必须有一个“真实”列表,您可以使用:

as.list(as.data.frame(t(df),stringsAsFactors=FALSE,row.names=NA))
# $V1
# [1] "a" "x"
#
# $V2
# [1] "b" "y"
#
# $V3
# [1] "c" "z"