繁体   English   中英

为data.frame的每一行获取不同的列

[英]Get a Different Column for Each Row of a data.frame

我有一个data.frame ,具有任意数量的列,并且我需要一种从每一行中获取不同列(仅一个)的方法。 例如,如果我有一个像这样的data.frame

myDF <- data.frame(A=letters[1:5], B=letters[6:10], C=LETTERS[26:22], stringsAsFactors=FALSE)

我想抓住字母a,g,c,W和V。

如果这是matrix ,则将很容易解决。

myDF[cbind(c(1, 2, 3, 4, 5), c(1, 2, 1, 3, 3))]

但我必须将数据存储在一个data.frame因为数据往往是一个POSIXlt ,我还没有找到一种方法来转换data.frame那些到的matrix

有没有人有一个很好的方法来做到这一点而不会逐行循环? 我有很多失败的尝试,我很乐意分享。

这很雄辩,但是可以用于特别困难的日期:

vect <- do.call(c, args=as.list(myDF))
vect[(1:NROW(myDF)) + NROW(myDF) * (c(1, 2, 1, 3, 3) - 1)]

暂无
暂无

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

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