将列列转换为其长度

时间:2017-05-02 05:07:13

标签: r dataframe

我有一个包含列表的列的数据框。我希望变异为包含每个列表长度的每一行创建一个新值,但是我很难做到这一点

我试过

df <- data.frame(a=1:3,b=I(list(1,1:2,1:3)))

df %>%  mutate(len = length(b))

但这只是将len设置为数据帧中的行数(每行的len值为3)。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

想出来,使用

df %>%  mutate(len = lengths(b))

答案 1 :(得分:0)

我们可以unnest创建新列

library(tidyverse)
df %>% 
   unnest %>%
   group_by(a) %>% 
   mutate(c = n())