R 从数据帧中提取行作为向量列表
例如,我有数据R 从数据帧中提取行作为向量列表,r,R,例如,我有数据 a <- c("a", "b", "c") b <- c("x", "y", "z") df <- data.frame(a = a, b = b) 我希望将解决方案矢量化,但我在使用正确的*apply函数时遇到问题…如果要按行拆分data.frame,请尝试 split(df, seq.int(nrow(df))) 如果要按行拆分data.frame,请尝试 split(df, seq.int(nrow(df))) 还有一种方法 as.data.fr
a <- c("a", "b", "c")
b <- c("x", "y", "z")
df <- data.frame(a = a, b = b)
我希望将解决方案矢量化,但我在使用正确的*apply函数时遇到问题…如果要按行拆分data.frame,请尝试
split(df, seq.int(nrow(df)))
如果要按行拆分data.frame,请尝试
split(df, seq.int(nrow(df)))
还有一种方法
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"
还有一种方法
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"
对于OP来说,这显然是可以的,但严格来说,这并不能给出问题所要求的结果。@thelatemail,这是一个用
as.matrix
轻松解决的问题,不是吗<代码>拆分(如.matrix(df),seq.int(nrow(df))@AnandaMahto-就是这样,是的。另外,split(as.matrix(df),rownames(df))
对于OP来说显然是可以的,但严格来说,这并不能给出问题所要求的结果。@thelatemail,使用as.matrix
很容易修复,不是吗<代码>拆分(如.matrix(df),seq.int(nrow(df))@AnandaMahto-就是这样,是的。另外split(如.matrix(df)、rownames(df))