【发布时间】:2021-01-28 09:55:21
【问题描述】:
我有一个如下结构的数据框 df:
observation x1 x2 x3 x4
"obs1" NA NA NA 51
"obs1" NA NA NA NA
"obs1" NA 25 NA NA
"obs2" NA NA NA NA
"obs2" NA NA NA NA
"obs2" NA NA NA 56
"obs3" 26 NA NA NA
"obs3" NA 82 NA NA
"obs3" NA NA "x" NA
我想要一个数据框 df2,对于每个观察和每一列,它都采用一个值,即不是 NA。生成的数据框应如下所示:
observation x1 x2 x3 x4
"obs1" NA 25 NA 51
"obs2" NA NA NA 56
"obs3" 26 82 "x" NA
我尝试过:
only_value = function(x){
x[which(!is.na(x))]
}
df2 = df %>% lapply(only_value) %>% as.data.frame()
但是,这仅适用于每个观察值的数量相同的情况。在我的示例中不是这种情况。
【问题讨论】:
标签: r function dataframe dplyr