我有这个数据集,其中包含前三年的变量。
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”命令来实现它,但是我想知道是否有一种快速简单的方法来实现它。 谢谢!
答案 0 :(得分:2)
这是一个简单的基础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