选择一行中的最后一个值&将它放在另一列中

时间:2016-04-01 11:14:54

标签: r

我有这样的数据表

Col1 | Col2 | Colx
 12  |  13  | 19
 34  |  NA  | NA
 13  |  33  | NA

确定我使用Andrie的建议here的每一行中的最后一个值,用于关于同一主题的上一个问题

但是我希望输出位于一个单独的列中,这是上面例子的预期输出。

>

Column
  19
  34
  33

上面链接中的OG问题并没有解决我的问题,因为输出没有出现在新专栏中。

2 个答案:

答案 0 :(得分:3)

我们可以做到

apply(df, 1, function(x) tail(x[!is.na(x)], 1))

如果您希望将结果放在新列中,您可以执行以下操作:

df$newColumn <- apply(df, 1, function(x) tail(x[!is.na(x)], 1))

答案 1 :(得分:1)

另一种选择是

i1 <- which(!is.na(df1), arr.ind=TRUE)
unname(tapply(df1[i1], i1[,1], FUN=tail,1))
#[1] 19 34 33 

数据

df1 <- structure(list(Col1 = c(12, 34, 13), Col2 = c(13,
NA, 33), Colx = c(19, 
NA, NA)), .Names = c("Col1", "Col2", "Colx"), 
row.names = c(NA, -3L), class = "data.frame")