简体   繁体   English

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

[英]Extract rows from data frame as list of vectors

For example, I have the data 例如,我有数据

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

I want to do something to df so my result is 我想对df做点什么,所以我的结果是

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

I want the solution to be vectorized, and I'm having trouble utilizing the right *apply functions... 我希望对解决方案进行矢量化处理,而在使用正确的* apply函数时遇到了问题...

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

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

Here's another way. 这是另一种方式。

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

This produces a data frame, which is in fact a list of vectors. 这将产生一个数据帧,实际上是一个向量列表。 If you must have a "true" list, you could use this: 如果必须具有“ true”列表,则可以使用此列表:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM