我有data.frame,如下:如何根据data.frame中的列访问data.frame内的列表成员?
x <- structure(list(tsv_level = c(2, 3, 2, 3, 2, 2), tsv_payout = structure(list(
c(0, 700, 1400, 2100, 2800), c(0, 300, 600, 900, 1200), c(0,
300, 600, 900, 1200), c(0, 3000, 6000, 9000, 12000), c(0,
700, 1400, 2100, 2800), c(0, 1000, 2000, 3000, 4000)), class = "AsIs")), .Names = c("tsv_level",
"tsv_payout"), row.names = c(NA, -6L), class = c("tbl_df", "tbl",
"data.frame"))
我想创建一个返回内tsv_payout
每个列表的tsv_levelth
元素的第三列。
我可以单独做第1行的x$tsv_payout[[1]][2]
和x$tsv_payout[[2]][3]
第2行,但我怎样才能做到这一点data.frame中的所有行?
谢谢!那工作。是否有可能在dplyr/mutate中写入?这一步是我正在执行的一系列mutate命令。 – pedram
@multiphrenic我这么认为。 'x%>%mutate(v = mapply(\'[[\',tsv_payout,tsv_level))似乎有效。我不确定关于列表列的dplyr理念是什么,但是你可能想看看其他相关的软件包(比如tidyr对列表列有某种“unnest”,并且purrr与列表有关......我只是知道dplyr我自己)。 – Frank
谢谢弗兰克,我可以与之合作。看起来'rowwise()'在这里也可能有所帮助:“ts的主要影响是允许你在不需要使用[[1]]的情况下使用列表变量进行汇总和变异,这使得总结了行列式tbl实际上等同于plyr的低价。“ – pedram