我有一个 datatable
其中每一列代表一个时间序列,我想以列排序的方式获取每个时间序列的最后一个 NA 值。在我的特定用例中,我的数据如下所示:
a b c
1 2 5
1 -17 9
NA 11 4
NA 57 NA
63 NA NA
因此,我想从中提取:
a b c
63 57 4
我怎样才能做到这一点?到目前为止,我只看到解决每行而不是每列提取最后一个非 NA 的相反情况的答案。
最佳答案
如果数据集是 data.table
,循环遍历 Data.table 的子集 ( .SD
),对非 NA 元素 ( x[!is.na(x)]
) 进行子集化并提取具有 tail
的元素中的最后一个元素.
df1[, lapply(.SD, function(x) tail(x[!is.na(x)],1))]
# a b c
#1: 63 57 4
关于r - 获取 data.table 中每列最后一个非 NA 行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934159/