例如,我有数据
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"))
我希望解决方案能够被矢量化,并且我在使用正确的*应用函数时遇到了麻烦...
答案 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"