我有一个带有向量列的数据框。我想获取最后一个元素并将其存储在新列中。我该怎么做?

时间:2019-11-05 02:44:45

标签: r dataframe vector indexing

我的数据框看起来像这样

df>
    col1       col2
     1     c('a', 'b', 'c')
     2     c('r', 't')
     3     c('x', 'y')

我想要一个看起来像这样的数据框

df>
    col1       col2             col3
     1     c('a', 'b', 'c')      'c'
     2     c('r', 't')           't'
     3     c('x', 'y')           'y'

2 个答案:

答案 0 :(得分:1)

这里是一个例子:

df <- data.frame(C = I(list(list("a","b"),list("a","b","c"))))
df$D <- sapply(df$C, function(x) x[length(x)])

输出

C D
1 a, b b
2 a, b, c c

答案 1 :(得分:1)

尝试一下

df$col3 <- sapply(df$col2,function(s) as.vector(s)[length(s)])