【问题标题】:how to extract the value from multiple columns in a specific order [duplicate]如何以特定顺序从多列中提取值[重复]
【发布时间】:2018-12-04 19:29:41
【问题描述】:

我有这个数据集,其中包含前三年的变量。

data <- read.table(text="
 a        2015  2016  2017  
 1        100    100   100
 2        1000    5    NA
 3       10000    NA   NA", header=TRUE)

我想在我的数据中创建一个新列,其中包含最近一年的值。顺序是 2017 ->2016 ->2015。

output <- read.table(text="
 a        2015  2016  2017  recent
 1        100    100   100   100
 2        1000    5    NA     5
 3       10000    NA   NA     10000", header=TRUE)

我知道我可以使用“if”命令来实现它,但我想知道是否有一种快速简单的方法来实现它。 谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    这是一个简单的基本 R 解决方案。这假设年份是从左到右排序的。

    data$recent <- apply(data, 1, function(x) tail(na.omit(x), 1))
    
      a X2015 X2016 X2017 recent
    1 1   100   100   100    100
    2 2  1000     5    NA      5
    3 3 10000    NA    NA  10000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2020-01-13
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多