我有这样的数据表
Col1 | Col2 | Colx
12 | 13 | 19
34 | NA | NA
13 | 33 | NA
确定我使用Andrie的建议here的每一行中的最后一个值,用于关于同一主题的上一个问题
但是我希望输出位于一个单独的列中,这是上面例子的预期输出。
>
Column
19
34
33
上面链接中的OG问题并没有解决我的问题,因为输出没有出现在新专栏中。
答案 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")