【问题标题】:I have a dataframe with a column that is a vector. I want to get the last element and store it in a new column. How can I do it?我有一个数据框,其中有一列是向量。我想获取最后一个元素并将其存储在一个新列中。我该怎么做?
【发布时间】:2019-11-05 02:44:45
【问题描述】:

我的数据框看起来像这样

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'

【问题讨论】:

  • 请使用dput(df)添加数据。
  • 欢迎来到 SO!当您提出问题时,请尝试添加最少的内容:输入样本、预期输出样本、您尝试了什么、研究以及您卡在哪里。你尝试了什么?

标签: r dataframe vector indexing


【解决方案1】:

试试这个

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

【讨论】:

    【解决方案2】:

    这是一个例子:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-21
      • 2019-10-19
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多